【发布时间】:2014-03-19 03:27:31
【问题描述】:
在 MySQL 中,我有一个 Column1 为 NOT NULL 的表:
create table myTable
(
Column1 int not null,
Column2 int not null
)
我仍然可以像这样插入一个空值:
INSERT INTO `myTable` ( `Column1` , `Column2` )
VALUES ( '66', '' );
如何使 MySQL 列也不允许空白字符串?
【问题讨论】:
-
@zac1987:你真的可以在
int列中插入一个空字符串吗?你是怎么做到的(为什么要尝试?) -
@Martin Smith,如何检查我使用的是什么 RDBMS? phpMyadmin 是 RDBMS 吗?我正在使用 phpMyadmin。
-
@ypercube,是的,我可以在 int 列中插入一个空字符串,但它会自动将其转换为“0”。我想防止用户向数据库插入空值,例如,用户打开 2 个选项卡,他在 1 个选项卡上注销了他的帐户,然后他提交了第 2 个选项卡的表单,表单提交会将空的 user_id 保存到数据库列,因为他已经从他的帐户。我认为最好将数据库列设置为不接受空条目。
-
我看到在 Mysql 中强制执行这样一个约束的唯一其他方法(我想你会使用它)是从
Column2添加一个 FOREIGN KEY 约束,它引用anotherTable(column)哪个列有一个列表Column2的允许值。 -
好主意(在没有真正的 CHECK 约束的情况下),但不要对货币价值等字段这样做;)