1

我想要一个脚本来阻止将 null 值输入到数据库中。我可以通过对代码进行一些更改来做到这一点,但我的意图不是在代码中更改它,而是编写一个可以运行的脚本来完成此任务

例如表“书”有作者姓名、价格、标题。我不想允许任何具有 null author_name 的数据库条目

4

3 回答 3

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

文档 -信号声明。

于 2013-04-08T06:30:08.683 回答
0

您可以以某种方式设置您的表格,使其拒绝此类条目:

alter table book change column author_name <DATATYPE> NOT NULL;

在这里查看更多信息:http: //dev.mysql.com/doc/refman/5.1/de/alter-table.html

于 2013-04-08T06:31:42.703 回答
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
于 2013-04-08T06:32:06.350 回答