亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

张北县| 金昌市| 峡江县| 永寿县| 依安县| 孙吴县| 腾冲县| 长岛县| 灌南县| 酉阳| 曲阜市| 新丰县| 浮山县| 黄梅县| 皮山县| 澜沧| 庆元县| 商洛市| 武强县| 大丰市| 巴东县| 华安县| 夹江县| 东乡| 清水县| 小金县| 石渠县| 靖西县| 武功县| 柞水县| 荔浦县| 敖汉旗| 宜州市| 绥中县| 宁海县| 甘德县| 泰和县| 平塘县| 凤台县| 广灵县| 克什克腾旗|