在这个mysql触发器after create中,我有:
@var = 'column_name_of_new_object'如何在javascript中获取NEW.@var? Like eval。
发布于 2017-07-15 05:22:47
通常,基于变量创建标识符需要使用动态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你不能这样做,我认为你很难找到这样做的理由。
你上面的评论:
我需要获取people行(NEW)的列值之一,以便插入到另一个表中。但该列名并不固定。
这是不正确的-表的列是固定的。如果更改列名,则还必须更改触发器。
https://stackoverflow.com/questions/45111601
复制相似问题