91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中怎么防止數據重復

發布時間:2021-07-26 15:57:34 來源:億速云 閱讀:194 作者:Leah 欄目:數據庫

MySQL中怎么防止數據重復,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

很多時候在日常的項目中,有些數據是不允許重復的,例如用戶信息中的登陸名,一旦存在同一個登陸名,必然不知道到底是哪個用戶執行登陸操作,導致系統異常。

常常在防止數據重復的情況下,我們都采用唯一索引去解決,如下

  • CREATE TABLE `login` (

  • `id` bigint unsigned NOT NULL AUTO_INCREMENT,

  • `name` varchar(255) DEFAULT NULL,

  • `password` varchar(255) DEFAULT NULL,

  • PRIMARY KEY (`id`),

  • UNIQUE KEY `idx_name` (`name`) USING BTREE

  • ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

當我們執行同樣的name的數據時則會報如下錯誤

MySQL中怎么防止數據重復

除了這個方法,你還知道其他的嗎?

下面我們介紹另外幾種方法

insert ignore into
插入數據時,如果數據存在,則忽略此次插入

INSERT ignore INTO login(`name`,`password`) VALUES("ganhuojun","password")

MySQL中怎么防止數據重復

replace into
插入數據時,如果數據存在,則刪除再插入

REPLACE INTO login(`name`,`password`) VALUES("ganhuojun","password")

執行后發現,2行生效,其中一行刪除,1行新增

MySQL中怎么防止數據重復

insert if not exists
sql的語法為insert into … select … where not exist ...,該語句先判斷mysql數據庫中是否存在這條數據,如果不存在,則正常插入,如果存在,則忽略

  • INSERT INTO login ( `name`, `password` ) SELECT

  • 'ganhuojun',

  • 'password'

  • FROM

  • login

  • WHERE

  • NOT EXISTS (

  • SELECT

  • `name`

  • FROM

  • login

  • WHERE

  • `name` = 'ganhuojun'

  • )

MySQL中怎么防止數據重復

on duplicate key update
插入數據時,如果數據存在,則執行更新操作

  • INSERT INTO login ( `name`, `password` )

  • VALUES

  • ( "ganhuojun", "password" )

  • ON DUPLICATE KEY UPDATE PASSWORD = 'passwd'

MySQL中怎么防止數據重復

看完上述內容,你們掌握MySQL中怎么防止數據重復的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

米泉市| 革吉县| 图木舒克市| 奈曼旗| 额尔古纳市| 明光市| 镇赉县| 宝山区| 中阳县| 洱源县| 蓝山县| 敦化市| 察隅县| 石楼县| 太康县| 万全县| 铜陵市| 壤塘县| 东丰县| 阳新县| 綦江县| 景洪市| 克拉玛依市| 聊城市| 昌乐县| 琼海市| 汕头市| 黎平县| 民乐县| 界首市| 敖汉旗| 宣威市| 南漳县| 土默特右旗| 和硕县| 三亚市| 仪征市| 攀枝花市| 乌兰浩特市| 牙克石市| 胶南市|