การเปลี่ยนคอลัมน์ให้ไม่รับค่า NULL ด้วย ALTER TABLE
ใช้ ALTER TABLE ... MODIFY column_name datatype NOT NULL ต้องแน่ใจว่าข้อมูลเดิมไม่มีค่า NULL
สร้างตาราง
mysql> CREATE TABLE DemoTable1949 (UserId INT, UserName VARCHAR(20));
Query OK, 0 rows affected (0.00 sec)
เปลี่ยนคอลัมน์ UserName เป็น NOT NULL
mysql> ALTER TABLE DemoTable1949 MODIFY UserName VARCHAR(20) NOT NULL;
Query OK, 0 rows affected (0.00 sec)
ตรวจสอบโครงสร้าง
mysql> DESC DemoTable1949;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| UserId | int(11) | YES | | NULL | |
| UserName | varchar(20) | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+
ทดสอบการปฏิเสธค่า NULL
mysql> INSERT INTO DemoTable1949 VALUES(101, NULL);
ERROR 1048 (23000): Column 'UserName' cannot be null
mysql> INSERT INTO DemoTable1949 VALUES(101, 'Chris');
Query OK, 1 row affected (0.00 sec)
หมายเหตุ: หากตารางมีข้อมูล NULL อยู่แล้ว จะ ALTER ไม่ได้ ต้อง UPDATE ให้มีค่าก่อน หรือตั้ง DEFAULT