gpt4 book ai didi

插入值检查之前的 MySQL 触发器

转载 作者:IT老高 更新时间:2023-10-29 00:10:38 26 4
gpt4 key购买 nike

我有一个包含 office 列的表 staff。目前 office 列不接受 NULL 值。保存在这张表上的应用程序有一个错误,这意味着,当员工没有被分配办公室时,它会尝试在表中插入一个 NULL 值。

我被要求使用触发器拦截插入到 Staff 表中并检查 office 值是否为 NULL 并将其替换为值 N/A

以下是我目前的尝试,但在尝试实现时确实有错误。关于如何解决这个问题的任何想法。

CREATE TRIGGER staffOfficeNullReplacerTrigger BEFORE INSERT ON Staff
FOR EACH ROW BEGIN
IF (NEW.office IS NULL)
INSERT INTO Staff SET office="N/A";
END IF
END;

错误:

MySQL Database Error: 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 'INSERT INTO Staff SET office="N/A"; END'

最佳答案

首先,修改表以允许 NULL:

ALTER TABLE Staff MODIFY office CHAR(40) DEFAULT "N/A";

(将 CHAR(40) 更改为合适的值。)然后您可以将其用作触发器:

CREATE TRIGGER staffOfficeNullReplacerTrigger 
BEFORE INSERT
ON Staff
FOR EACH ROW BEGIN
IF (NEW.office IS NULL) THEN
SET NEW.office = "N/A";
END IF

关于插入值检查之前的 MySQL 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12836270/

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