【发布时间】:2015-05-28 15:45:23
【问题描述】:
我需要在 MySQL 中编写一个触发器,以确保每当向表中插入新行时,其中一个字段的值将由其他字段的值组合生成的特定值填充。
如您所见,我首先需要将名称字段中的所有空格替换为 -,然后将其与 - 和电话字段的值连接,最后将结果放入昵称字段。
触发器
The following query has failed: "CREATE DEFINER=`root`@`localhost`
TRIGGER `generatenickname` BEFORE INSERT ON `Users`
FOR EACH ROW
DECLARE temp = REPLACE(NEW.name, " ", "-");
SET NEW.nickname = concat(temp + '-' + NEW.phone);"
MySQL said: #1064 - You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near 'DECLARE temp = REPLACE(NEW.name, " ", "-"); SET
NEW.nickname = concat(t' at line 1
如果我用 BEGIN 和 END 包围它;并删除“FOR EACH ROW”,它不会显示错误,而是在昵称字段中输入 0。
【问题讨论】:
标签: mysql triggers phpmyadmin