gpt4 book ai didi

MYSQL GUID 触发器

转载 作者:行者123 更新时间:2023-11-29 02:53:41 26 4
gpt4 key购买 nike

我创建了下表:

CREATE TABLE GUID(guid BINARY(16),user VARCHAR(16),expire INT(10));

我的目标是在一行的 guid = null 时创建一个默认 guid。为此,我创建了一个触发器:

CREATE TRIGGER default_guid 
BEFORE INSERT ON GUID
FOR EACH ROW BEGIN
IF new.guid IS NULL THEN
SET new.guid = UNHEX(REPLACE(UUID(), '-', ''));
END IF;
END;

但是,我在创建此触发器时收到以下语法错误:

ERROR 1064 (42000): 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 '' at line 5

我试过几个在线语法检查器都没有成功;我的语法错误在哪里?

最佳答案

默认情况下,MySQL 使用分号 (;) 来终止语句。但是,当创建触发器时,您有几个语句组成它,因此您需要告诉 MySQL 分号并不表示您已完成触发器定义,而只是表示该语句。这可以通过将分隔符设置为另一个字符组合来完成,例如 $$:

-- Set the delimiter to $$
DELIMITER $$

CREATE TRIGGER default_guid
BEFORE INSERT ON GUID
FOR EACH ROW
BEGIN
IF new.guid IS NULL THEN
SET new.guid = UNHEX(REPLACE(UUID(), '-', ''));
END IF;
END;
$$ -- Trigger ends here

-- Reset the delimiter to ;
DELIMITER ;

关于MYSQL GUID 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32926443/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com