有没有办法使用用于 Firebird 数据库的 kinterbasdb 库从 Python 执行 DDL 脚本?
基本上我想复制“isql -i myscript.sql”命令。
有没有办法使用用于 Firebird 数据库的 kinterbasdb 库从 Python 执行 DDL 脚本?
基本上我想复制“isql -i myscript.sql”命令。
自从我使用 kinterbasdb 以来已经有一段时间了,但据我所知,您应该能够使用任何查询命令来执行此操作,这些命令也可用于 INSERT、UPDATE 和 DELETE(即不会产生结果集)。所以 Connection.execute_immediate 和 Cursor.execute 应该可以工作。
你真的试过这个。
顺便说一句:对于 Firebird,建议不要在一个事务中混合 DDL 和 DML。
编辑:
我刚刚意识到您可能是指包含多个语句的完整 DDL 脚本,如果这就是您的意思,那么:不,您不能,您需要单独执行每个语句。
您可能可以使用 EXECUTE BLOCK 语句,但您可能需要对脚本进行大量修改,以便将实际脚本拆分为单独的语句会更容易。