明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

MySQL如何使用UNIQUE來完成數(shù)據(jù)不重復(fù)插入的詳細(xì)說明

[摘要]當(dāng)unique列在一個(gè)UNIQUE鍵上插入包含重復(fù)值的記錄時(shí),我們可以控制MySQL如何處理這種情況:使用IGNORE關(guān)鍵字或者ON DUPLICATE KEY UPDATE子句跳過INSERT、中斷操作或者更新舊記錄為新值。SQL UNIQUE 約束 UNIQUE 約束唯一標(biāo)識(shí)數(shù)據(jù)庫表中的每條記...
當(dāng)unique列在一個(gè)UNIQUE鍵上插入包含重復(fù)值的記錄時(shí),我們可以控制MySQL如何處理這種情況:使用IGNORE關(guān)鍵字或者ON DUPLICATE KEY UPDATE子句跳過INSERT、中斷操作或者更新舊記錄為新值。

SQL UNIQUE 約束

UNIQUE 約束唯一標(biāo)識(shí)數(shù)據(jù)庫表中的每條記錄。
UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。
PRIMARY KEY 擁有自動(dòng)定義的 UNIQUE 約束。

請(qǐng)注意,每個(gè)表可以有多個(gè) UNIQUE 約束,但是每個(gè)表只能有一個(gè) PRIMARY KEY 約束。

下面的 SQL 在 “Persons” 表創(chuàng)建時(shí)在 “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 約束,以及為多個(gè)列定義 UNIQUE 約束,請(qǐng)使用下面的 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)建時(shí),如需在 “Id_P” 列創(chuàng)建 UNIQUE 約束,請(qǐng)使用下列 SQL:

ALTER TABLE Persons ADD UNIQUE (Id_P)

如需命名 UNIQUE 約束,并定義多個(gè)列的 UNIQUE 約束,請(qǐng)使用下面的 SQL 語法:

ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

如需撤銷 UNIQUE 約束,請(qǐng)使用下面的 SQL:

ALTER TABLE Persons DROP INDEX uc_PersonID

這樣每次插入重復(fù)記錄時(shí)MySQL就會(huì)提示Duplicate entry value1-value2 for key uni_que,當(dāng)然你可以在insert的時(shí)候加入ignore來忽略掉
現(xiàn)在保證了無重復(fù)記錄后,我們要開始記錄不存在則插入,存在則更新操作

INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...) ON DUPLICATE KEY UPDATE field1='value1', field2='value2', field3='value3', ...

這個(gè)語句的意思是,插入值,如果沒有該記錄執(zhí)行

INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...)

這一段,如果存在該記錄,那么執(zhí)行

UPDATE field1='value1', field2='value2', field3='value3', ...

以上就是MySQL如何使用UNIQUE來實(shí)現(xiàn)數(shù)據(jù)不重復(fù)插入的詳細(xì)介紹的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。