2012-02-25 33 views
1

这是跟进到Convert sqlalchemy core statements to raw SQL without a connection?。我想用命名参数插入,但不通过SQLA执行它们。使用命名参数编译sqlalchemy语句

我定义为这样的插入语句:

table = Table("table", meta_data, 
      Column("id", Integer, auto_increment=True, primary_key=1), 
      Column("name", String), 
      Column("full_name", String)) 
params = {"full_name": "some_name", "name": "some_other_name"} 
stmt = sqlalchemy.sql.expression.insert(table).values(params) 
c_stmt = stmt.compile(dialect=dialect) 

我以后会通过DBAPI连接执行该语句。我怎样才能确保生成的SQL字符串和我的参数集之间的位置一致?

回答

0

大多数SQL引擎(all?)都支持命名绑定参数以及位置参数,并且SA提供了一个接口(bindparam,足够有趣)来这样做。 SA Docs有一个可能满足您需求的示例部分。当然,这些示例假设您正在使用SA执行查询,因此您需要将它们解释为您的用例。

相关问题