0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MySQL數據庫:如何操作禁止重復插入數據

如意 ? 來源:今日頭條 ? 作者:Java成長催化師 ? 2020-10-08 14:15 ? 次閱讀

在MySQL進行數據插入操作時,總是會考慮是否會插入重復數據,之前的操作都是先根據主鍵或者唯一約束條件進行查詢,有就進行更新沒有就進行插入。代碼反復效率低下。

新建表格

MySQL數據庫:如何操作禁止重復插入數據

添加三條數據如下:

MySQL數據庫:如何操作禁止重復插入數據

我們這邊可以根據插入方式進行規(guī)避:

1. insert ignore

insert ignore 會自動忽略數據庫已經存在的數據(根據主鍵或者唯一索引判斷),如果沒有數據就插入數據,如果有數據就跳過插入這條數據。

插入SQL如下: insert ignore into person (id,name,age,address) values(3,‘那誰’,23,‘甘肅省’),(4,‘我的天’,25,‘浙江省’);

再次查看數據庫就會發(fā)現僅插入id為4的數據,由于數據庫中存在id為3的數據所以被忽略。

MySQL數據庫:如何操作禁止重復插入數據

2. replace into

replace into 首先嘗試插入數據到表中, 1. 如果發(fā)現表中已經有此行數據(根據主鍵或者唯一索引判斷)則先刪除此行數據,然后插入新的數據。 2. 否則,直接插入新數據。

插入SQL如下: replace into person (id,name,age,address) values(3,‘那誰’,23,‘甘肅省’),(4,‘我的天’,25,‘浙江省’);

首先我們將表中數據恢復,然后進行插入操作后發(fā)現id為3的數據發(fā)生了改變同時新增了id為4的數據。

MySQL數據庫:如何操作禁止重復插入數據

3. insert on duplicate key update

insert on duplicate key update 如果在insert into語句的末尾指定了on duplicate key update + 字段更新,則會在出現重復數據(根據主鍵或者唯一索引判斷)的時候按照后面字段更新的描述對該信息進行更新操作。

插入SQL如下: insert into person (id,name,age,address) values(3,‘那誰’,23,‘甘肅省’) on duplicate key update name=‘那誰’, age=23, address=‘甘肅省’;

首先我們將表中數據恢復,然后在進行插入操作時,發(fā)現id為3的數據發(fā)生了改變,進行了更新操作。

MySQL數據庫:如何操作禁止重復插入數據

我們可以根據自己的業(yè)務需求進行方法的選擇。
責編AJX

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3799

    瀏覽量

    64396
  • 源代碼
    +關注

    關注

    96

    文章

    2945

    瀏覽量

    66748
  • MySQL
    +關注

    關注

    1

    文章

    809

    瀏覽量

    26575
收藏 人收藏

    評論

    相關推薦

    MySQL數據庫使用

    關于MySQL數據庫的簡單操作
    發(fā)表于 10-24 14:32

    labview插入數據MySQL數據庫

    最近在用labview寫入數據MySQL數據庫,遇到一個問題:(如圖片所示)利用insert指令插入數據,為什么每次
    發(fā)表于 12-26 16:52

    Mysql數據庫的基本操作

    Mysql數據庫入門-基本操作
    發(fā)表于 06-08 17:18

    數據庫插入查詢刪除操作教程

    數據庫插入查詢刪除操作教程
    發(fā)表于 12-07 09:57 ?2次下載

    LabVIEW操作MySQL數據庫編程實例

    LabVIEW操作MySQL數據庫編程實例
    發(fā)表于 10-13 15:05 ?48次下載

    華為云數據庫-RDS for MySQL數據庫

    華為云數據庫-RDS for MySQL數據庫 華為云數據庫作為華為云的一款數據庫產品,它主要是以MyS
    的頭像 發(fā)表于 10-27 11:06 ?1524次閱讀

    有哪些不同的MySQL數據庫引擎?

    數據庫引擎是MySQL組件,可以處理SQL操作,例如從數據庫創(chuàng)建、讀取和更新數據。MySQL中有
    的頭像 發(fā)表于 04-03 16:38 ?1142次閱讀

    MySQL數據庫管理與應用

    討論MySQL數據庫的管理和應用。 管理MySQL數據庫 在管理MySQL數據庫之前,我們需要了
    的頭像 發(fā)表于 08-28 17:15 ?977次閱讀

    mysql是一個什么類型的數據庫

    強、易于使用和管理。在本文中,我們將詳盡、詳實、細致地介紹MySQL的功能、優(yōu)勢、架構、語法等方面。 一、MySQL的功能: 數據庫管理:MySQL具備創(chuàng)建和管理
    的頭像 發(fā)表于 11-16 14:43 ?1788次閱讀

    mysql數據庫的增刪改查sql語句

    SQL語句,以幫助讀者全面了解MySQL的基本操作。 一、增加數據MySQL數據庫中,我們可以使用INSERT語句來向表中
    的頭像 發(fā)表于 11-16 15:41 ?1246次閱讀

    MySQL數據庫基礎知識

    的基礎知識,包括其架構、數據類型、表操作、查詢語句和數據導入導出等方面。 MySQL 數據庫架構 MyS
    的頭像 發(fā)表于 11-21 11:09 ?973次閱讀

    mysql數據庫基礎命令

    MySQL是一個流行的關系型數據庫管理系統,經常用于存儲、管理和操作數據。在本文中,我們將詳細介紹MySQL的基礎命令,并提供與每個命令相關的詳細解釋。 登錄
    的頭像 發(fā)表于 12-06 10:56 ?591次閱讀

    數據庫數據恢復—未開啟binlog的Mysql數據庫數據恢復案例

    mysql數據庫數據恢復環(huán)境: 本地服務器,windows server操作系統 ,部署有mysql單實例,
    的頭像 發(fā)表于 12-08 14:18 ?1139次閱讀
    <b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—未開啟binlog的<b class='flag-5'>Mysql</b><b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復案例

    數據庫數據恢復—MYSQL數據庫ibdata1文件損壞的數據恢復案例

    mysql數據庫故障: mysql數據庫文件ibdata1、MYI、MYD損壞。 故障表現:1、數據庫無法進行查詢等
    的頭像 發(fā)表于 12-09 11:05 ?154次閱讀

    數據庫數據恢復—Mysql數據庫表記錄丟失的數據恢復流程

    Mysql數據庫故障: Mysql數據庫表記錄丟失。 Mysql數據庫故障表現: 1、
    的頭像 發(fā)表于 12-16 11:05 ?153次閱讀
    <b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—<b class='flag-5'>Mysql</b><b class='flag-5'>數據庫</b>表記錄丟失的<b class='flag-5'>數據</b>恢復流程