在mysql中创建触发器以生成UUID

 cqj6832154 发布于 2023-02-13 12:57

如何在插入MySQL之前尝试创建触发器时抛出错误,以便为每个输入生成新的UUID.

CREATE TRIGGER insert_guid 
BEFORE INSERT ON guid_tool (FOR EACH  ROW 
BEGIN 
  SET NEW.guid_key = UUID()); 
END;

这是我的桌子

create table guid_tool (
    ID INT NOT NULL AUTO_INCREMENT, 
    guid_key CHAR(40) NOT NULL, 
    PRIMARY KEY(ID)
) CHARSET=LATIN1;

我一定做错了什么.

1 个回答
  • 正如@mabi在评论中所提到的 - 括号中存在语法错误.以下修改后的代码适用于我:

    DELIMITER #
    CREATE TRIGGER insert_guid 
    BEFORE INSERT ON guid_tool
    FOR EACH  ROW 
    BEGIN 
        SET NEW.guid_key = UUID(); 
    END;
    #
    DELIMITER ;
    

    测试出来:

    mysql> INSERT INTO guid_tool (ID) VALUES (1);
    Query OK, 1 row affected, 1 warning (0.04 sec)
    
    mysql> SELECT * FROM guid_tool;
    +----+--------------------------------------+
    | ID | guid_key                             |
    +----+--------------------------------------+
    |  1 | a0467ebf-5c4f-11e3-903a-6cccbb4423e3 |
    +----+--------------------------------------+
    1 row in set (0.00 sec)
    

    2023-02-13 12:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有