Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ตั้งค่า NOT NULL ให้คอลัมน์ที่มีอยู่แล้วใน MySQL

การเปลี่ยนคอลัมน์ให้ไม่รับค่า 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