Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 阻止将空值输入数据库_Mysql_Sql - Fatal编程技术网

Mysql 阻止将空值输入数据库

Mysql 阻止将空值输入数据库,mysql,sql,Mysql,Sql,我有一个数据库,我正在通过应用程序访问它。该应用程序接受所有类型的值,包括Blank(我的错误:(应该只在我的应用程序中限制它)。我想运行一个脚本,以便它阻止空值进入我的数据库 例如:Books是我的数据库,包含作者、价格、标题等列 我想阻止空作者姓名条目, 我使用了如下所示的触发器 分隔符| CREATE TRIGGER trigger1 AFTER INSERT ON books FOR EACH ROW BEGIN IF NEW.author = '' THEN

我有一个数据库,我正在通过应用程序访问它。该应用程序接受所有类型的值,包括Blank(我的错误:(应该只在我的应用程序中限制它)。我想运行一个脚本,以便它阻止空值进入我的数据库

例如:Books是我的数据库,包含作者、价格、标题等列 我想阻止空作者姓名条目, 我使用了如下所示的触发器

分隔符|

CREATE TRIGGER trigger1  AFTER INSERT ON books
  FOR EACH ROW BEGIN
    IF NEW.author = '' THEN    
    delete from books where author = '';
    END IF;      
  END;
|books
DELIMITER ;
此脚本满足阻止空值的目标,但存在一些不一致性(在某一点之后,我根本无法访问数据库,我既不能输入值也不能访问值)。
有谁能告诉我可能有什么问题。

有多种方法可以实现这一点-
1) 将触发器更改为“插入前” 如果作者名为null,则返回false 这将阻止应用程序插入空白作者姓名

2) 更改表架构,并在作者名称中添加一个不为null的约束


请参阅

是否有任何错误消息?我认为这不是个好主意。。最好在应用程序中实现该约束。是否要丢弃
NULL
值或空字符串
'
?需要丢弃空字符串。通过在插入之前使用,会出现相同的问题,通过更改架构如何阻止空值?ALTER TABLE BOOK ADD CHECK(作者!='')你的申请是用哪种语言写的?如果作者姓名为空或为空,则检查作者姓名并跳过插入会更简单。我的应用程序使用C#,我知道在代码中执行此操作的方法,但我现在无法在我的应用程序中进行更改,因此,您需要一个替代方案。@harin04请将一个答案标记为已接受,如果它对您有所帮助或回答了您的问题,那么它将对将来访问该网站的其他用户有所帮助。你的其他问题也是如此——你没有接受任何一个问题的答案