gpt4 book ai didi

mysql - 防止在 MySQL 中插入空字符串的约束

转载 作者:IT老高 更新时间:2023-10-28 23:42:35 28 4
gpt4 key购买 nike

this question我学会了如何防止插入 NULL 值。但是,不幸的是,无论如何都会插入一个空字符串。除了在 PHP 端防止这种情况外,我还想使用数据库约束之类的东西来防止这种情况。当然,在应用程序方面进行检查是必要的,但我希望双方都进行检查。

我被告知,无论应用程序与您的数据库通信,它都不应该能够在其中插入基本错误的数据。所以...

CREATE TABLE IF NOT EXISTS tblFoo (
foo_id int(11) NOT NULL AUTO_INCREMENT,
foo_test varchar(50) NOT NULL,
PRIMARY KEY (foo_id)
);

仍然允许我做这个插入:

INSERT INTO tblFoo (foo_test) VALUES ('');

我想阻止。

最佳答案

通常你会使用 CHECK 约束来做到这一点:

foo_test VARCHAR(50) NOT NULL CHECK (foo_test <> '')

在 8.0 版之前,MySQL 对约束的支持有限。来自 MySQL Reference Manual :

The CHECK clause is parsed but ignored by all storage engines.

如果您必须坚持使用旧版本,请使用 triggers正如人们所指出的那样,作为一种解决方法。

将来,您可能想要take a look at PostgreSQL ,被 other things 认为对数据完整性有更好的支持(在 many people 中) .

关于mysql - 防止在 MySQL 中插入空字符串的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2514178/

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