Python使用MySQL Connector动态创建触发器时NEW关键字识别异常问题求助
Python使用MySQL Connector动态创建触发器时NEW关键字识别异常问题求助
各位大佬,我碰到个棘手的问题想请教下!
我正在写一个Python脚本,打算给数据库里的所有表动态创建触发器。原本一切都正常,可当我加入MySQL的NEW关键字用来记录变更操作时,问题就出现了:
直接在MySQL Workbench里执行
CREATE TRIGGER语句完全没问题,但通过VS Code用Python3的MySQL Connector运行时,就会报错:
Error: 1054 (42S22): Unknown column 'Id' in 'NEW'.
先提前说明下:所有表肯定都有Id字段,是每张表的自增主键,绝对不存在没有这个列的情况。现在的问题明显是MySQL把NEW误当成了一个表名,试图去找这个名为NEW的表中的Id列,但这个表根本就不存在啊!
我问了好几个AI工具,结果它们翻来覆去都是那套话,说什么“名为NEW的表没有Id列,你得创建它或者修改代码”,完全没理解我的问题。
我真的不想手动给每个表都去建一遍触发器,太耗费时间了!下面是我的代码片段:
insert_trigger = f""" CREATE TRIGGER {trigger_prefix}_Insert AFTER INSERT ON {table} FOR EACH ROW BEGIN CALL LogActivity(NEW.Id, CURRENT_USER(), 'Insert', '{table}'); END; """ cursor.execute(insert_trigger) print(f"Created INSERT trigger for table {table}")
有没有大佬遇到过类似的问题?求支招怎么解决!
备注:内容来源于stack exchange,提问作者1chick
相关产品推荐
相关产品推荐

