如何防止 MySQL 表中插入空字符串?

Patricia Arquette
发布: 2024-11-19 05:50:02
原创
259 人浏览过

How Can I Prevent Empty String Inserts in MySQL Tables?

通过约束防止在 MySQL 中插入空字符串

在前面的讨论中,提出了一种防止在 MySQL 中插入 NULL 值的方法。然而,尽管存在限制,但由于疏忽,仍允许插入空字符串。本文探讨了使用数据库约束来解决此问题的方法,确保数据库和应用程序端的数据完整性。

考虑以下表定义:

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

尽管强制执行此定义,但foo_test 列上的 NOT NULL 约束,仍然允许插入空字符串:

INSERT INTO tblFoo (foo_test) VALUES ('');
登录后复制

为了防止这种情况,可以使用检查约束。但需要注意的是,在 MySQL 8.0 版本之前,不支持这种类型的约束。正如 MySQL 参考手册中所述:

The CHECK clause is parsed but ignored by all storage engines.
登录后复制

对于较旧的 MySQL 版本,解决方法是按照建议使用触发器。然而,对于未来的发展,考虑对数据完整性具有增强支持的数据库可能是有利的,例如 PostgreSQL。

以上是如何防止 MySQL 表中插入空字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板