欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL使用UNIQUE實(shí)現(xiàn)數(shù)據(jù)不重復(fù)插入

 更新時(shí)間:2017年05月21日 10:21:54   作者:linux_c_coding_man  
當(dāng)unique列在一個(gè)UNIQUE鍵上插入包含重復(fù)值的記錄時(shí),我們可以控制MySQL如何處理這種情況:使用IGNORE關(guān)鍵字或者ON DUPLICATE KEY UPDATE子句跳過(guò)INSERT、中斷操作或者更新舊記錄為新值。

SQL UNIQUE 約束

UNIQUE 約束唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)表中的每條記錄。
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 語(yǔ)法:

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 語(yǔ)法:

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

如需撤銷(xiāo) 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來(lái)忽略掉
現(xiàn)在保證了無(wú)重復(fù)記錄后,我們要開(kāi)始記錄不存在則插入,存在則更新操作

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

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

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

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

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

相關(guān)文章

  • mysql和sqlserver查詢數(shù)據(jù)庫(kù)表的數(shù)量方法詳解

    mysql和sqlserver查詢數(shù)據(jù)庫(kù)表的數(shù)量方法詳解

    這篇文章主要介紹了mysql和sqlserver查詢數(shù)據(jù)庫(kù)表的數(shù)量方法詳解,本文給大家分享SQL語(yǔ)句寫(xiě)法,文末補(bǔ)充介紹了查詢sqlserver 數(shù)據(jù)庫(kù)中各表?xiàng)l數(shù)的語(yǔ)句,需要的朋友可以參考下
    2023-07-07
  • 利用JuiceFS使MySQL?備份驗(yàn)證性能提升?10?倍

    利用JuiceFS使MySQL?備份驗(yàn)證性能提升?10?倍

    這篇文章主要介紹了如何讓?MySQL?備份驗(yàn)證性能提升?10?倍,JuiceFS?非常適合用來(lái)做?MySQL?物理備份,通過(guò)不斷調(diào)整?XtraBackup?的參數(shù)和?JuiceFS?的掛載參數(shù),在一個(gè)小時(shí)內(nèi)將時(shí)間縮短到原先的?1/10,下文一起來(lái)看相關(guān)內(nèi)容的詳細(xì)介紹吧
    2022-03-03
  • MySQL登錄時(shí)出現(xiàn) Access denied for user ‘root‘@‘xxx.xxx.xxx.xxx‘ (using password: YES) 的原因及解決辦法

    MySQL登錄時(shí)出現(xiàn) Access denied for user ‘

    今天打開(kāi)mysql的時(shí)候突然提示:Access denied for user 'root'@'localhost' (using password: YES) 在網(wǎng)上搜索了很多文章,本文就來(lái)做一下總結(jié),介紹了幾種場(chǎng)景的解決方法,感興趣的可以了解一下
    2024-03-03
  • MySQL關(guān)于字符串中數(shù)字排序的問(wèn)題分析

    MySQL關(guān)于字符串中數(shù)字排序的問(wèn)題分析

    這篇文章主要介紹了MySQL關(guān)于字符串中數(shù)字排序的問(wèn)題,結(jié)合實(shí)例形式分析了mysql按照數(shù)值排序的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • 解決 phpmyadmin #2002 無(wú)法登錄 MySQL 服務(wù)器

    解決 phpmyadmin #2002 無(wú)法登錄 MySQL 服務(wù)器

    我以前使用phpmyadmin都是很正常的,從來(lái)沒(méi)有出現(xiàn)過(guò)問(wèn)題。但是今天出現(xiàn)了提示#2002無(wú)法登陸到MYSQL服務(wù)器
    2012-04-04
  • 深入理解sqlserver中的字符編碼、排序規(guī)則、nvarchar和varchar

    深入理解sqlserver中的字符編碼、排序規(guī)則、nvarchar和varchar

    本文主要介紹了深入理解sqlserver中的字符編碼、排序規(guī)則、nvarchar和varchar,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • MySQL使用觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)自動(dòng)更新的應(yīng)用實(shí)例

    MySQL使用觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)自動(dòng)更新的應(yīng)用實(shí)例

    觸發(fā)器是非常常見(jiàn)的自動(dòng)化數(shù)據(jù)庫(kù)操作方式,無(wú)論是在數(shù)據(jù)更新、刪除還是需要自動(dòng)添加一些內(nèi)容到數(shù)據(jù)表上,觸發(fā)器都可以發(fā)揮作用,熟悉 SQL 的基本語(yǔ)法和一些常見(jiàn)的用例,可以幫助你合理地設(shè)置自己的數(shù)據(jù)庫(kù)操作流程,
    2024-01-01
  • 連接MySql速度慢的解決方法(skip-name-resolve)

    連接MySql速度慢的解決方法(skip-name-resolve)

    這篇文章主要介紹了連接MySql速度慢的解決方法(skip-name-resolve),需要的朋友可以參考下
    2015-09-09
  • MySQL存儲(chǔ)過(guò)程之流程控制while,repeat,loop循環(huán)

    MySQL存儲(chǔ)過(guò)程之流程控制while,repeat,loop循環(huán)

    這篇文章主要介紹了MySQL存儲(chǔ)過(guò)程之流程控制while,repeat,loop循環(huán),循環(huán)中的代碼會(huì)運(yùn)行特定的次數(shù),或者是運(yùn)行到特定條件成立時(shí)結(jié)束循環(huán)
    2022-07-07
  • 淺析MySQL的注入安全問(wèn)題

    淺析MySQL的注入安全問(wèn)題

    這篇文章主要介紹了淺析MySQL的注入安全問(wèn)題,文中簡(jiǎn)單說(shuō)道了如何避免SQL注入敞開(kāi)問(wèn)題的方法,需要的朋友可以參考下
    2015-05-05

最新評(píng)論