少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          MySQL 當(dāng)記錄不存在時插入,當(dāng)記錄存在時更新.........具體解決辦法如下:
          1、INSERT INTO… ON DUPLICATE KEY UPDATE
          如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后會導(dǎo)致在一個UNIQUE索引或PRIMARY KEY中出現(xiàn)重復(fù)值,則執(zhí)行舊行UPDATE。
          使用環(huán)境:
          例如,如果列a被定義為UNIQUE,并且包含值1,則以下兩個語句具有相同的效果:
          首先建表(先說UNIQUE):
          create table abin1(
          id int not null unique,
          username varchar(100),
          password varchar(100)
          )
          insert into abin1 (id,username,password) values (1,'abin1','varyall1') on duplicate key update username='abin12',password='varyall12';

          其次再說主鍵(primary key)類型的:
          create table abin2(
          id int not null,
          username varchar(100),
          password varchar(100),
          constraint pk_abin2 primary key(id)
          )
          執(zhí)行語句:
          insert into abin2 (id,username,password) values (1,'abin1','varyall1') on duplicate key update username='abin12',password='varyall12';




          2、插入單行記錄:如果不存在插入記錄,如果存在記錄的話,就不再插入
          insert into abin2 (id,username,password) select 1,'abin12','varyall12' from dual
          where not exists (select k.* from abin2 k where k.id=1)


          3、示例一:插入多條記錄

          假設(shè)有一個主鍵為 id 的 abin2表,可以使用下面的語句:

          insert into abin2 (id,username,password) select 1,'abin12','varyall12' from dual
          where not exists (select k.* from abin2 k where k.id=1)

          4、
          我們在使用數(shù)據(jù)庫時可能會經(jīng)常遇到這種情況。如果一個表在一個字段上建立了唯一索引,當(dāng)我們再向這個表中使用已經(jīng)存在的鍵值插入一條記錄,那將會拋出一個主鍵沖突的
          錯誤。當(dāng)然,我們可能想用新記錄的值來覆蓋原來的記錄值。如果使用傳統(tǒng)的做法,必須先使用DELETE語句刪除原先的記錄,然后再使用INSERT插入新的記錄。而在MySQL中為
          我們提供了一種新的解決方案,這就是REPLACE語句。使用REPLACE插入一條記錄時,如果不重復(fù),REPLACE就和INSERT的功能一樣,如果有重復(fù)記錄,REPLACE就使用新記錄的值
          來替換原來的記錄值。

          具體用法:
          replace into abin2 (id,username,password) values (2,'abin','varyall')




          http://blog.csdn.net/kesaihao862/article/details/6718443

          posted on 2013-05-14 11:14 abin 閱讀(541) 評論(0)  編輯  收藏 所屬分類: mysql
          主站蜘蛛池模板: 高陵县| 南陵县| 通州市| 黎城县| 凌海市| 兴业县| 中超| 郸城县| 天峻县| 汶上县| 巴中市| 丰镇市| 驻马店市| 青龙| 澄城县| 松潘县| 美姑县| 若尔盖县| 靖西县| 定陶县| 泰来县| 秦安县| 安丘市| 沁水县| 防城港市| 肥城市| 昭苏县| 安仁县| 平谷区| 衡阳县| 如东县| 九龙县| 清徐县| 始兴县| 兴海县| 响水县| 沾化县| 北海市| 英吉沙县| 科技| 秀山|