English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQLの既存の列に非ヌル制約をどう付けますか?

MySQLに既存の列に非null制約を追加するには、ALTERコマンドを使用します。これはユーザーが空値を入力するのを制限する検証タイプです。

以下に例を示します。まず、テーブルを作成します。CREATEコマンドはテーブルを作成するために使用されます。

mysql> create table AddNotNUlldemo
   - > (
   - > name varchar(100)
   - > );

レコードを挿入します。

mysql> insert into AddNotNUlldemo values('John');
mysql> insert into AddNotNUlldemo values('Bob');

すべてのレコードを表示します。

mysql> select *from AddNotNUlldemo;

これは出力です。

+------+
| name |
+------+
| John |
| Bob  |
+------+
2 セット内の行(0.00秒)

以下は、既存の列に制約を追加する構文です。

ALTER table yourTableName  modify column_name data type constraint;

上記の構文を実現するために、以下を実行します。ここでは、「非空」制約を含めます。

mysql> ALTER table AddNotNUlldemo modify name varchar(100) not null;
レコード数: 0  重複数: 0  警告: 0

現在、空値をテーブル“ AddNotNUlldemo”に挿入することができません。なぜなら、上記の制約が「非空」に設定されているためです。空値を追加しようとすると、エラーメッセージが表示されます。以下はその例です。

mysql> INSERT into AddNotNUlldemo values(null);
ERROR 1048 (23000): 列 'name' は null ではありません

すべてのレコードを表示します。

mysql> SELECT *from AddNotNUlldemo;

これは出力です。

+------+
| name |
+------+
| John |
| Bob  |
+------+
2 セット内の行(0.00秒)
おすすめ