我想要一个脚本来阻止null值输入到数据库中。我能够通过代码中的一些更改来做到这一点,但我的意图是不在代码中更改它而是编写一个可以运行来完成此任务的脚本
例如表“book”有author_name,price,title。 我不想允许任何进入具有null author_name
的数据库答案 0 :(得分:5)
您需要在列的定义中使用NOT NULL
子句。例如 -
CREATE TABLE book (
author_name varchar(50) NOT NULL,
price decimal(19, 2) DEFAULT NULL,
title varchar(255) DEFAULT NULL
);
这就像一个约束。
约束空白值的解决方法 -
CREATE TRIGGER trigger1
AFTER INSERT
ON book
FOR EACH ROW
BEGIN
IF author_name = '' THEN
SIGNAL SQLSTATE VALUE '02001'
SET MESSAGE_TEXT = 'Blank value is not allowed'; -- Raise error
END IF;
END
文档 - SIGNAL声明。
答案 1 :(得分:0)
您可以通过某种方式设置表格,拒绝此类条目:
alter table book change column author_name <DATATYPE> NOT NULL;
在此处查看更多内容:http://dev.mysql.com/doc/refman/5.1/de/alter-table.html
答案 2 :(得分:0)
根据文件:http://dev.mysql.com/doc/refman/5.1/en/create-table.html
create_definition:
col_name column_definition
column_definition:
data_type [NOT NULL | NULL] [DEFAULT default_value]
[AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
[COMMENT 'string']
[COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]
[STORAGE {DISK|MEMORY|DEFAULT}]
[reference_definition]
您的column_definition应该类似于
author_name VARCHAR(50) NOT NULL