代码之家  ›  专栏  ›  技术社区  ›  Mark

使用Select子句的MySql After Insert触发器

  •  0
  • Mark  · 技术社区  · 1 年前

    以下查询生成一个包含20个字符的随机字符串:

    SELECT LEFT(MD5(RAND()), 20); 
    

    我的目标是在添加新行时将其插入users_address字段的token字段中。我创建了以下触发器:

    BEGIN       
        INSERT INTO users_address (token) VALUES (SELECT LEFT(MD5(RAND()), 20));
    END
    

    返回错误“You have a error in your SQL syntax;check the manual…”。如果我用实际字符串替换SELECT语句,则会创建触发器,因此问题似乎是SELECT。我需要做些什么才能改变才能使其发挥作用?

    1 回复  |  直到 1 年前
        1
  •  1
  •   SelVazi    1 年前

    SELECT 中不需要 VALUES 条款:

    INSERT INTO users_address (token) VALUES (LEFT(MD5(RAND()), 20));
    

    Demo here