メタデータまたはormクラスがない(データベースがすでに存在する)データベースがあります。これまでのところコアSQLAlchemyを使用した挿入と更新
from sqlalchemy.sql.expression import ColumnClause
from sqlalchemy.sql import table, column, select, update, insert
from sqlalchemy.ext.declarative import *
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
import pyodbc
db = create_engine('mssql+pyodbc://pytest')
Session = sessionmaker(bind=db)
session = Session()
list = []
list.append (column("field1"))
list.append (column("field2"))
list.append (column("field3"))
s = select(list)
s.append_from('table')
s.append_whereclause("field1 = 'abc'")
s = s.limit(10)
result = session.execute(s)
out = result.fetchall()
print(out)
とても良い:
私はで働い選択のものを得ることができました。私は、更新/挿入作業を取得することができます唯一の方法は次のように生のクエリを実行することである:
session.execute(<Some sql>)
私はそれはので、私はそのような外のクラスを作ることができますしたいと思います:
をu = Update("table")
u.Set("file1","some value")
u.Where(<some conditon>)
seasion.execute(u)
(これはちょうど私が試したのアプローチの一つである)しようとしました:私は上で実行することができません
i = insert("table")
v = i.values([{"name":"name1"}, {"name":"name2"}])
u = update("table")
u = u.values({"name": "test1"})
:
session.execute(i)
または
session.execute(u)
ORMモデルを記述することなく挿入または更新を構築するためにどのように任意の提案?
2日間検索した後、私にとってclearintそれをためているのほとんども、とにかく戦車た – Jester
セッションとトランザクションではない理由docsから、セッションはORMで使用する必要があります。 – Aidis