如何确保该字段是必填字段?这就是我的意思
我有以下mysql表结构:
CREATE TABLE `new` (
`id` int(11) DEFAULT NULL,
`name` int(11) DEFAULT NULL,
`phone` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
以下是没有电话数据的查询
insert into new values(1, 'm', '');
但查询运行正常。如果没有电话字段的数据,应该怎么做才能让mysql返回错误?我可以通过php进行验证,但我很好奇如何在mysql中做到这一点。
答案 0 :(得分:0)
INSERT INTO new VALUES(1,'m',NULL)
会导致错误 如果要检查电话号码字段是否为空白字符串,请执行 你可以在MySQL中使用触发器。
答案 1 :(得分:0)
我没有测试过这个,但我感觉'' != null
。如果你运行
insert into new(id, name) values (1, 'test');
我打赌你得到一个插入错误......
无论如何,我认为在PHP中进行验证可能比等到数据库更好...插入是昂贵的......
答案 2 :(得分:0)
可能将'phone'列的默认值设置为NULL会使其失败插入,因为如果你没有指定它,它将最终为null。
否则你将需要省略默认的电话栏,例如在php中你用空($ phone)? null:$ phone;或类似的东西。
答案 3 :(得分:0)
''因为第3个选项不会使phone的值为null。它只等于空白字符串即可。 如果要查看错误,请将''替换为NULL。