阻止将空值输入数据库

时间:2013-04-15 05:26:35

标签: sql database mysqli

我有一个数据库,我通过一个应用程序访问它。该应用程序采取所有类型的值,包括空白(我的错误:(应该只在我的应用程序中约束这个)。我想运行一个脚本,它阻止将空值输入我的数据库。

例如:Books是我的数据库,其中包含作者,价格,标题              我想阻止空作者姓名输入,    我使用了如下所示的触发器;

DELIMITER |

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 个答案:

答案 0 :(得分:0)

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

2)更改表模式,并向作者名称添加一个非null的约束。

参考Blocking null value entries into database