在创建之后的这个mysql触发器中我有:
@var = 'column_name_of_new_object'
如何在javascript中获取NEW.@var? Like eval
。
答案 0 :(得分:1)
通常,基于变量创建标识符要求您使用动态SQL,例如PREPARE和EXECUTE。
但是你不能在触发器中使用动态SQL。
mysql> CREATE TRIGGER mytrigger BEFORE INSERT ON mytable
-> FOR EACH ROW BEGIN
-> DECLARE col VARCHAR(10) DEFAULT 'mytimestamp';
-> SET @sql = CONCAT('SET NEW.', col , ' = UNIX_TIMESTAMP(NOW())');
-> PREPARE st FROM @sql;
-> EXECUTE st;
-> END;;
ERROR 1336 (0A000): Dynamic SQL is not allowed in stored function or trigger
你不能这样做,我认为你很难想出这样做的理由。
您的上述评论:
我需要将其中一行列值(NEW)插入到另一个表中。但该列名称未修复。
这不正确 - 表的列已修复。如果更改列名,则还必须更改触发器。