在mysql中,可以通過(guò)使用ALTER TABLE語(yǔ)句給字段添加唯一約束(Unique Key)來(lái)讓字段值唯一,語(yǔ)法為“ALTER TABLE 數(shù)據(jù)表名 ADD CONSTRAINT 唯一約束名 UNIQUE(字段名);”。ALTER TABLE語(yǔ)句用于修改原有表的結(jié)構(gòu);而唯一約束可以確保字段的唯一性,讓所有記錄中字段的值不能重復(fù)出現(xiàn)。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
在mysql中,想要讓字段唯一,可以通過(guò)給字段添加唯一約束來(lái)實(shí)現(xiàn)。
唯一約束(Unique Key)是指所有記錄中字段的值不能重復(fù)出現(xiàn),可以確保字段的唯一性。例如,為 id 字段加上唯一性約束后,每條記錄的 id 值都是唯一的,不能出現(xiàn)重復(fù)的情況。如果其中一條記錄的 id 值為‘0001’,那么該表中就不能出現(xiàn)另一條記錄的 id 值也為‘0001’。
而給字段添加唯一約束有兩種語(yǔ)句:
-
CREATE TABLE 語(yǔ)句
-
ALTER TABLE 語(yǔ)句
但CREATE TABLE 語(yǔ)句是在創(chuàng)建表時(shí)設(shè)置,不符合要求;因此這里使用 ALTER TABLE 語(yǔ)句。語(yǔ)法:
ALTER TABLE 數(shù)據(jù)表名 ADD CONSTRAINT 唯一約束名 UNIQUE(字段名);
示例:數(shù)據(jù)表 tb_dept中name字段修改為唯一
先看看表結(jié)構(gòu):
DESC tb_dept;
指定部門(mén)的名稱(chēng)唯一
ALTER TABLE tb_dept ADD CONSTRAINT unique_name UNIQUE(name);
ok,設(shè)置完成。再看看表結(jié)構(gòu):
說(shuō)明:
唯一約束與主鍵約束相似的是它們都可以確保列的唯一性。不同的是,唯一約束在一個(gè)表中可有多個(gè),并且設(shè)置唯一約束的列允許有空值,但是只能有一個(gè)空值。而主鍵約束在一個(gè)表中只能有一個(gè),且不允許有空值。比如,在用戶(hù)信息表中,為了避免表中用戶(hù)名重名,可以把用戶(hù)名設(shè)置為唯一約束。
【