Mysql 触发失败查询

Mysql 触发失败查询,mysql,Mysql,如果某些字段没有数据,如何创建触发器(mysql)使sql查询失败 这是我的桌子 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, 'Bu', ''); 如果没有电话字段的数据,我希

如果某些字段没有数据,如何创建触发器(mysql)使sql查询失败

这是我的桌子

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, 'Bu', '');

如果没有电话字段的数据,我希望该查询失败。

电话字段声明为int,因此您将发送并使用此字符

INSERT INTO new values(1, 'Bu', o);
您可以将phone的属性更改为varchar(),或者至少删除notnull属性,以便插入NULL值

INSERT INTO new values(1, 'Bu', NULL);


为什么不插入空字符串而不是
INSERT
NULL,就像这里推荐的那样它不起作用,因为phone字段被清除为
phone
int(11)NOT NULL,所以它可能永远不会完全为NULL!您之前说过“如果电话字段没有数据,我希望该查询失败。”是的,它不会工作,因为它会失败。嗯,这是一个误解:(@georgevich,我误解了您的问题。您的Insert语句会失败,因为它在寻找int值。所以请忽略我的帖子
INSERT INTO new (`id`, `name`) values(1, 'Bu');