使用sqlalchemycore(而不是ORM),我试图在值中使用子查询插入多行。对于MySQL,实际的SQL如下所示:
INSERT INTO widgets (name, type) VALUES
('Melon', (SELECT type FROM widgetTypes WHERE type='Squidgy')),
('Durian', (SELECT type FROM widgetTypes WHERE type='Spiky'))
但我似乎只有在对^{Connection
的^{
是否可以在一次调用execute()
中执行我想要的操作?在
这是一个独立的演示。注意这使用了sqlite引擎doesn't support multiple inserts in the same way as MySQL,但是SQLAlchemy代码仍然以与实际MySQL应用程序相同的方式失败。在
^{pr2}$运行它,它会在最后一个execute()
调用时终止:
sqlalchemy.exc.InterfaceError: (InterfaceError) Error binding parameter 1 - probably unsupported type. u'INSERT INTO widgets (name, type) VALUES (?, ?)' (('Raspberry', <sqlalchemy.sql.expression.Select at 0x19f14d0; Select object>), ('Lychee', <sqlalchemy.sql.expression.Select at 0x19f1a50; Select object>))
不需要将subselect语句作为参数值提供,而是必须将其嵌入INSERT语句中:
相关问题 更多 >
编程相关推荐