MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLの列からNOTNULL制限を削除しますか?


MySQLの列からNOTNULL制限を削除するには、ALTERコマンドを使用します。構文は次のとおりです。

ALTER TABLE yourTableName MODIFY COLUMN yourColumnName dataType;

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。

mysql> create table NotNullDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(20) NOT NULL,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.58 sec)

上記の表で、「名前」列にNULL値を挿入すると、MySQLはNOTNULL制限のエラーを出します。 NULL値を挿入するためのクエリは次のとおりです。

mysql> insert into NotNullDemo(Name) values(NULL);
ERROR 1048 (23000): Column 'Name' cannot be null

列「名前」からNOTNULL制限を削除するためのクエリは次のとおりです。

mysql> alter table NotNullDemo MODIFY COLUMN Name varchar(20);
Query OK, 0 rows affected (1.78 sec)

レコード:0重複:0警告:0

これで、選択に応じてNULL値を挿入できます。 NULL値でテーブルにレコードを挿入するクエリ:

mysql> insert into removeNotNulllDemo(Name) values(NULL);
Query OK, 1 row affected (0.12 sec)
mysql> insert into removeNotNulllDemo(Name) values('Sam');
Query OK, 1 row affected (0.14 sec)
mysql> insert into removeNotNulllDemo(Name) values('Mike');
Query OK, 1 row affected (0.13 sec)
mysql> insert into removeNotNulllDemo(Name) values(NULL);
Query OK, 1 row affected (0.10 sec)
mysql> insert into removeNotNulllDemo(Name) values(NULL);
Query OK, 1 row affected (0.10 sec)
mysql> insert into removeNotNulllDemo(Name) values('John');
Query OK, 1 row affected (0.13 sec)
>

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです。

mysql> select *from removeNotNulllDemo;

出力は次のとおりです。

+----+------+
| Id | Name |
+----+------+
|  1 | NULL |
|  2 | Sam  |
|  3 | Mike |
|  4 | NULL |
|  5 | NULL |
|  6 | John |
+----+------+
6 rows in set (0.00 sec)

  1. 空であってはならないMySQL列に何を割り当てるのですか?

    列が空であってはならない場合は、NOTNULLで定義します。まず、列の1つがNOTNULL-であるテーブルを作成しましょう。 mysql> create table DemoTable1895    (    Id int NOT NULL,    FirstName varchar(20),    LastName varchar(20) NOT NULL    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつか

  2. MySQLの既存の列にNOTNULL属性を設定します

    NOT NULL属性を既存の列に設定するには、ALTERTABLEコマンドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1949    (    UserId int,    UserName varchar(20)    ); Query OK, 0 rows affected (0.00 sec) これは、既存の列にNOTNULL属性を設定するためのクエリです- mysql> alter table DemoTable1949 modify