我有一个数据库,我通过应用程序输入值。具体来说,我在文本框中输入特定值,然后单击“保存”按钮,该按钮处理将其保存到数据库中的任务。我面临的问题是即使我没有在文本框中输入任何值并单击保存按钮,该值也会保存到数据库中(我应该在代码中处理的情况)。现在我想写一个SQL脚本,以便阻止空值输入数据库。
例如,假设..books是包含author_name,price,year
列的表因此,如果尝试输入空白作者姓名并尝试保存,则不应保存
我试过了:
DELIMITER |
CREATE TRIGGER test AFTER INSERT ON books
FOR EACH ROW BEGIN
IF NEW.author_name= '' THEN
delete from books where author_name= '';
END IF;
END;
|books
DELIMITER ;
任何人都可以告诉我如何做到这一点,有没有其他方法来实现这一目标?
答案 0 :(得分:1)
您应该在应用程序中验证用户输入。
答案 1 :(得分:0)
您的触发器应如下所示:
CREATE TRIGGER <name of the trigger> BEFORE INSERT ON <name of table>
FOR EACH ROW BEGIN
IF NEW.<fieldname> = ''
THEN
SET NEW='Error: Cannot insert record empty value for <fieldname>';
END IF;
END
;
创建触发器之前插入
答案 2 :(得分:0)
答案 3 :(得分:0)
检查应用程序中空白的输入值,这应该是应用程序逻辑的一部分。 if empty, dont insert
- 就是这样。
答案 4 :(得分:0)
你想要的是“约束”:
ALTER TABLE books MODIFY author_name varchar(200) NOT NULL;