1

null 値のデータベースへのエントリをブロックするスクリプトが必要です。コードを変更することでこれを行うことができますが、私の意図はコードを変更することではなく、このタスクを達成するために実行できるスクリプトを作成することです

たとえば、テーブル「book」には、author_name、price、title があります。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

ドキュメンテーション - SIGNALステートメント。

于 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 に答える