【问题标题】:Error #1193 MySql, insert trigger错误 #1193 MySql,插入触发器
【发布时间】:2019-01-02 03:55:53
【问题描述】:
CREATE TRIGGER `UpdateId` 
BEFORE INSERT ON `comments`
FOR EACH ROW
set @vid=(select MAX(comments.id) from comments)+1; 
set new.id=@vid;

这个查询给了我一个错误 #1193 说 id 变量是未知的。

似乎有类似问题的每个人都没有将“新”clausole 放在变量之前,但在我的情况下它仍然不起作用。 'new' clausole 在我输入时没有突出显示,看起来它不是一个特殊的关键字,而是一个普通的单词。

【问题讨论】:

    标签: mysql triggers phpmyadmin


    【解决方案1】:

    https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html 看来,您可能只需要使用一个set 语句或使用begin ... end 构造。我的预感是create trigger 语句以第一个分号结束,然后当它到达new.id=@vid; 时,MySQL 不知道你在说什么。

    CREATE TRIGGER `UpdateId` 
    BEFORE INSERT ON `comments`
    FOR EACH ROW
    set 
        @vid=(select MAX(comments.id) from comments)+1, 
        new.id=@vid;
    

    delimiter //
    CREATE TRIGGER `UpdateId` 
    BEFORE INSERT ON `comments`
    FOR EACH ROW
    begin
        set @vid=(select MAX(comments.id) from comments)+1; 
        set new.id=@vid;
    end;//
    delimiter;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      • 2016-10-13
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      相关资源
      最近更新 更多