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