当我们使用ALTER TABLE语句将NOT NULL约束应用于包含NULL值的列时会发生什么?

在这种情况下,MySQL将返回有关该列被截断的数据的错误消息。以下是演示它的示例-

示例

假设我们有一个表“ test2”,其中第二行的“ ID”列中包含一个NULL值。现在,如果我们尝试将列ID声明为NOT NULL,则MySQL将返回以下错误-

mysql> Select * from test2;
+------+--------+
| ID   | Name   |
+------+--------+
| 1    | Gaurav |
| NULL | Rahul  |
+------+--------+
2 rows in set (0.00 sec)
mysql> ALTER TABLE TEST2 MODIFY ID INT NOT NULL;
ERROR 1265 (01000): Data truncated for column 'ID' at row 2