How can we remove NOT NULL constraint from a column of an existing MySQL table?

MySQLMySQLi Database

We can remove a NOT NULL constraint from a column of an existing table by using the ALTER TABLE statement.

Example

Suppose we have a table ‘test123’ having a NOT NULL constraint on column ‘ID’ as follows −

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)

Now if we want to remove the NOT NULL constraint then we can use ALTER TABLE statement as follows −

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)

The above result set shows that NOT NULL constraint on column ‘ID’ has been removed.

In the query above, the keyword NULL after keyword MODIFY is optional. The following query will also produce the same result as above −

mysql> ALTER TABLE test123 MODIFY ID INT;
Query OK, 0 rows affected (0.20 sec)
Records: 0 Duplicates: 0 Warnings: 0
raja
Published on 16-Feb-2018 16:40:27
Advertisements