我有以下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.这可能导致问题吗?任何帮助是极大的赞赏。谢谢:))