gpt4 book ai didi

Mysql 列约束为 "not empty"/"required"

转载 作者:可可西里 更新时间:2023-11-01 07:18:00 26 4
gpt4 key购买 nike

我们可以在 mysql 中指定一个列为“非空”/“必需”吗?要求是确保该字段永远不会在任何记录插入时保持空白。

最佳答案

我假设您也不希望表中允许空白(空字符串,与 NULL 相对)值。

通常,这就是 CHECK 约束的用途。你做类似的事情

CREATE TABLE
mytable
(
myfield NOT NULL VARCHAR(200),
CHECK(myfield > '')
)

但是,MySQL 解析约束但不强制执行。您仍然可以插入空值。

要解决这个问题,请创建一个 BEFORE INSERT 触发器并在尝试插入空白值时发出信号:

CREATE TRIGGER
tr_mytable_bi
BEFORE INSERT
ON mytable
FOR EACH ROW
BEGIN
IF NEW.myfield = '' THEN
SIGNAL SQLSTATE '45001' SET MESSAGE_TEXT = 'Blank value on mytable.myfield';
END IF;
END;

如果您也想禁止更新空白值,请对 BEFORE UPDATE 执行相同的操作。

关于Mysql 列约束为 "not empty"/"required",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24424363/

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