连接列上的MySQL插入和更新触发器无法正常工作

时间:2016-01-28 20:20:36

标签: php mysql

我有以下MySQL表名为用户

+----------------+----------------+----------+     +----------+
|    uniquenum   |      state     |   type   |     |  custid  |
+----------------+----------------+----------+     +----------+
+----------------+----------------+----------+     +----------+
|     00001      |     03         |    1     |     | 10300001 |
+----------------+----------------+----------+     +----------+
|     00002      |     02         |    3     |     | 30200002 |
+----------------+----------------+----------+     +----------+

以上三列单序列,状态和类型都连接在一起并显示在custid列中。我可以通过运行以下SQL查询来实现:

UPDATE users SET custid = concat (type,state,uniquenum)

我想要实现的是使custid列在添加新值或更新旧值时自动获取其他三列的值。所以,我尝试按如下方式创建一个触发器:

CREATE trigger insert_custid
before insert on users
for each row
set new.custid = concat(new.type,new.state,new.uniquenum);

create trigger update_custid
before update on users
for each row
set new.custid = concat(new.type,new.state,new.uniquenum);

当我这样做并插入表格时,custid列不会存储正确的值。相反,它返回所有零来代替uniquenum的值。 unquenum是带有zerofill的AUTO_INCREMENT,从00001开始,间隔为1.这可能导致问题吗?任何帮助是极大的赞赏。谢谢:))

0 个答案:

没有答案