1

我有一个与在 phpmyadmin 上创建触发器有关的问题。我有一个像下面这样的简单代码,当我提交代码时,在变量 x 声明的行中返回了一个 sintax 错误。我知道 SELECT 查询有效,因为我已经对其进行了测试,并返回了一个字符串。谁能帮我?提前致谢。

DELIMITER $$

CREATE TRIGGER `after_assigntags_insert` AFTER INSERT ON `assigntags`
FOR EACH ROW 
BEGIN
DECLARE x VARCHAR(10);
SET x = (SELECT UltLabel FROM assignlabels WHERE ALmessage=1);
INSERT INTO messages (Message) VALUES (x);
$$
END

DELIMITER ;
4

3 回答 3

0

如何使用user variables

DELIMITER $$

CREATE TRIGGER `after_assigntags_insert` AFTER INSERT ON `assigntags`
FOR EACH ROW 
BEGIN
   SET @x = (SELECT UltLabel FROM assignlabels WHERE ALmessage=1 LIMIT 1);
   INSERT INTO messages (Message) VALUES (@x);
$$
END

DELIMITER ;
于 2013-04-10T13:54:18.633 回答
0

我认为BEGIN之后DECLARE

DELIMITER $$

CREATE TRIGGER `after_assigntags_insert` AFTER INSERT ON `assigntags`
FOR EACH ROW 

DECLARE 
  x VARCHAR(10);
BEGIN
  SET x = (SELECT UltLabel FROM assignlabels WHERE ALmessage=1);
  INSERT INTO messages (Message) VALUES (x);
  $$
END

DELIMITER ;
于 2013-04-10T13:56:09.523 回答
0

这是一个语法错误,

END应该在你的定界符之前$$

尝试这样的事情:

DELIMITER $$

CREATE TRIGGER `after_assigntags_insert` AFTER INSERT ON `assigntags`
FOR EACH ROW 
BEGIN
DECLARE x VARCHAR(10);
SET x = (SELECT UltLabel FROM assignlabels WHERE ALmessage=1);
INSERT INTO messages (Message) VALUES (x);
END
$$

DELIMITER ;
于 2013-04-10T14:17:27.080 回答