|
|
1
14
当您执行纯文本语句时,新的PK值是否可用以及通过何种方式,取决于您使用的DBAPI。使用SQlite和MySQL DBAPIs,您将得到result.lastrowid,它只为光标提供.lastrowid的值。对于PG、Oracle等,没有“.lastrowid”-正如其他人所说,对于那些通过result.fetchone()可以获得结果的情况,可以使用“RETURNING”(尽管使用Oracle返回,同样没有利用SQLAlchemy表达式构造,需要几个笨拙的步骤),或者,如果返回不可用,您可以使用直接序列访问(pg中的NEXTVAL)或“后期提取”操作(pg中的CURRVAL、@@identity或MSSQL中的scope_identity())。
听起来很复杂,对吧?这就是为什么你最好使用
|
|
|
2
3
即
然后检索一行,就像insert是SELECT语句一样。 |