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

既存のMySQLテーブルの列からNOTNULL制約を削除するにはどうすればよいですか?


ALTER TABLEステートメントを使用して、既存のテーブルの列からNOTNULL制約を削除できます。

次のように、列「ID」にNOTNULL制約があるテーブル「test123」があるとします-

mysql> DESCRIBE test123;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra    |
+-------+---------+------+-----+---------+-------+
| ID    | int(11) | NO   |     |   NULL  |       |
| Date  | date    | YES  |     |   NULL  |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.04 sec)

ここで、NOT NULL制約を削除する場合は、次のようにALTERTABLEステートメントを使用できます-

mysql> ALTER TABLE test123 MODIFY ID INT NULL;
Query OK, 0 rows affected (0.20 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> DESCRIBE test123;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+------ +---------+------+-----+---------+-------+
| ID    | int(11) | YES  |     |   NULL  |       |
| Date  | date    | YES  |     |   NULL  |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.06 sec)

上記の結果セットは、列「ID」のNOTNULL制約が削除されたことを示しています。

上記のクエリでは、キーワードMODIFYの後のキーワードNULLはオプションです。次のクエリでも、上記と同じ結果が生成されます-

mysql> ALTER TABLE test123 MODIFY ID INT;
Query OK, 0 rows affected (0.20 sec)
Records: 0 Duplicates: 0 Warnings: 0

  1. すでに作成されているMySQL列にNOTNULL制約を追加するにはどうすればよいですか?

    これは、ALTERTABLEを使用して実現します。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> StudentName varchar(100)    -> ); Query OK, 0 rows affected (0.86 sec) 表の説明を確認しましょう- mysql> desc De

  2. MySQLテーブルからインデックスを削除します

    MySQLテーブルからインデックスを削除するための構文は、次のとおりです- alter table yourTableName drop index `yourIndexName`; まずテーブルを作成しましょう- Mysql> create table DemoTable1469    -> (    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> StudentName varchar(40),    ->