首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql触发器通过变量获取列值

问mysql触发器通过变量获取列值
EN

Stack Overflow用户
提问于 2017-07-15 05:07:20
回答 1查看 65关注 0票数 0

在这个mysql触发器after create中,我有:

代码语言:javascript
复制
@var = 'column_name_of_new_object'

如何在javascript中获取NEW.@var? Like eval。

EN

回答 1

Stack Overflow用户

发布于 2017-07-15 05:22:47

通常,基于变量创建标识符需要使用动态SQL,就像使用PREPARE和EXECUTE一样。

但是您不能在触发器中使用动态SQL。

代码语言:javascript
复制
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)的列值之一,以便插入到另一个表中。但该列名并不固定。

这是不正确的-表的列是固定的。如果更改列名,则还必须更改触发器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45111601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档