MySQL 非空約束是一種數(shù)據(jù)庫(kù)約束,可以在表中的某個(gè)列上設(shè)置非空值的限制。當(dāng)啟用了非空約束時(shí),該列上不允許插入 NULL 值,否則會(huì)出現(xiàn)錯(cuò)誤。
CREATE TABLE example ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL );
上面的代碼創(chuàng)建了一個(gè)名為 "example" 的表,其中包含兩個(gè)列,id 和 name。對(duì)于 name 列,它被設(shè)置為非空,因此在插入數(shù)據(jù)時(shí)必須提供一個(gè)值。如果沒(méi)有提供值,將會(huì)收到一個(gè)錯(cuò)誤。
INSERT INTO example (id) VALUES (1);
上面的代碼嘗試向例子表中插入一個(gè) id 值為 1 的行,但沒(méi)有提供 name 值。由于 name 列上有非空約束,因此會(huì)收到以下錯(cuò)誤:
ERROR 1048 (23000): Column 'name' cannot be null
如果想在已存在的列上設(shè)置非空約束,可以使用 ALTER TABLE 語(yǔ)句來(lái)更改列:
ALTER TABLE example MODIFY COLUMN name VARCHAR(50) NOT NULL;
上面的代碼將 name 列修改為非空。如果該列中已經(jīng)存在 NULL 值,將會(huì)出現(xiàn)錯(cuò)誤。為了解決這個(gè)問(wèn)題,可以在修改之前更新 NULL 值:
UPDATE example SET name = 'Unknown' WHERE name IS NULL;
MySQL 非空約束可以幫助保證表中的數(shù)據(jù)完整性和一致性,防止插入空值,確保數(shù)據(jù)質(zhì)量。
上一篇css物流快遞單樣式
下一篇css片段 做圖