SQL UNIQUE 約束
UNIQUE 約束唯一標(biāo)識數(shù)據(jù)庫表中的每條記錄。
UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。
PRIMARY KEY 擁有自動定義的 UNIQUE 約束。
請注意,每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束。
下面的 SQL 在 “Persons” 表創(chuàng)建時在 “Id_P” 列創(chuàng)建 UNIQUE 約束:
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), UNIQUE (Id_P) )
如果需要命名 UNIQUE 約束,以及為多個列定義 UNIQUE 約束,請使用下面的 SQL 語法:
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName) )
當(dāng)表已被創(chuàng)建時,如需在 “Id_P” 列創(chuàng)建 UNIQUE 約束,請使用下列 SQL:
ALTER TABLE Persons ADD UNIQUE (Id_P)
如需命名 UNIQUE 約束,并定義多個列的 UNIQUE 約束,請使用下面的 SQL 語法:
ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
如需撤銷 UNIQUE 約束,請使用下面的 SQL:
ALTER TABLE Persons DROP INDEX uc_PersonID
這樣每次插入重復(fù)記錄時MySQL就會提示Duplicate entry value1-value2 for key uni_que,當(dāng)然你可以在insert的時候加入ignore來忽略掉
現(xiàn)在保證了無重復(fù)記錄后,我們要開始記錄不存在則插入,存在則更新操作
INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...) ON DUPLICATE KEY UPDATE field1='value1', field2='value2', field3='value3', ...
這個語句的意思是,插入值,如果沒有該記錄執(zhí)行
INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...)
這一段,如果存在該記錄,那么執(zhí)行
UPDATE field1='value1', field2='value2', field3='value3', ...
標(biāo)簽:宿州 咸寧 林芝 內(nèi)江 AXB 三明 汕頭 朔州
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL使用UNIQUE實(shí)現(xiàn)數(shù)據(jù)不重復(fù)插入》,本文關(guān)鍵詞 MySQL,使用,UNIQUE,實(shí)現(xiàn),數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。