在MySQL數(shù)據(jù)庫中,可以使用約束(Constraint)對(duì)表中的數(shù)據(jù)進(jìn)行限制,保持?jǐn)?shù)據(jù)的完整性和一致性。其中,唯一性約束(Unique Constraint)可以用來保證某一列數(shù)據(jù)的唯一性,防止出現(xiàn)重復(fù)數(shù)據(jù)。
增加唯一性約束可以通過ALTER TABLE語句來實(shí)現(xiàn)。例如,假設(shè)我們有一個(gè)名為“student”的表,并希望保證“學(xué)號(hào)(id)”列的唯一性,則可以使用以下語句:
ALTER TABLE student ADD UNIQUE (id);
執(zhí)行上述語句后,如果表中已經(jīng)存在重復(fù)的“學(xué)號(hào)”數(shù)據(jù),則會(huì)報(bào)錯(cuò)并提示“Duplicate entry”。此時(shí),需要手動(dòng)刪除重復(fù)的數(shù)據(jù)才能成功添加唯一性約束。
除了在ALTER TABLE語句中直接指定列名外,也可以為約束指定一個(gè)名稱。例如,以下示例中我們?yōu)椤皩W(xué)號(hào)(id)”列的唯一性約束命名為“unique_id”:
ALTER TABLE student ADD CONSTRAINT unique_id UNIQUE (id);
對(duì)于已存在唯一性約束的列,還可以使用ALTER TABLE語句來更改約束的名稱或刪除約束。例如,以下示例中我們將“學(xué)號(hào)(id)”列原有的約束名稱“uk_id”更改為“unique_id”:
ALTER TABLE student DROP INDEX uk_id, ADD CONSTRAINT unique_id UNIQUE (id);
綜上,增加唯一性約束可以有效保證數(shù)據(jù)的完整性和一致性,避免重復(fù)數(shù)據(jù)的出現(xiàn)。