null 値のデータベースへのエントリをブロックするスクリプトが必要です。コードを変更することでこれを行うことができますが、私の意図はコードを変更することではなく、このタスクを達成するために実行できるスクリプトを作成することです
たとえば、テーブル「book」には、author_name、price、title があります。null author_name を持つデータベースへのエントリを許可したくない
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ステートメント。
そのようなエントリを拒否するようにテーブルを設定できます。
alter table book change column author_name <DATATYPE> NOT NULL;
詳細はこちら: http://dev.mysql.com/doc/refman/5.1/de/alter-table.html
ドキュメントによると: 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