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

mysql不同數(shù)據(jù)庫不同數(shù)據(jù)表導(dǎo)入數(shù)據(jù)

 更新時間:2015年07月29日 12:37:10   投稿:hebedich  
這篇文章主要介紹了mysql不同數(shù)據(jù)庫不同數(shù)據(jù)表導(dǎo)入數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下

背景

現(xiàn)在我有這么一個需求:

數(shù)據(jù)庫A的user表需要導(dǎo)入到數(shù)據(jù)庫B的account表
user表字段:uid,username,email,password,regdate,salt
account表字段:id,name,email,password,type,salt
導(dǎo)入的字段只有username,email,password,salt,并且regdate需要符合某個條件
下面分幾種情況來寫sql,主要區(qū)分insert into和replace into

情況

導(dǎo)入的數(shù)據(jù)在B庫的表中完全不存在

直接insert into就好,使用replace into效果一樣

INSERT INTO `B`.`account`(NAME,PASSWORD,email,salt)
SELECT username,PASSWORD,email,salt
FROM `A`.`users`
WHERE regdate>1418313600

導(dǎo)入的數(shù)據(jù)部分存在

數(shù)據(jù)部分存在為了區(qū)分需要在兩個表添加唯一索引,這個唯一索引(UNIQUE)必須是導(dǎo)入的字段里面的值
我在兩個表中分別為username和name字段添加唯一索引
直接替換

replace into在操作的時候如果兩表數(shù)據(jù)重復(fù)(必須定義UNIQUE),會先刪掉那一行(注意是一整行),然后再執(zhí)行insert into

造成的后果就是,account表中的type字段如果原來有值,會直接刪掉,并重新插入,即變成默認(rèn)值了

REPLACE INTO `B`.`account`(NAME,PASSWORD,email,salt)
SELECT username,PASSWORD,email,salt
FROM `A`.`users`
WHERE regdate>1418313600

忽略重復(fù)

用IGNORE關(guān)鍵字,如果遇到重復(fù),不會操作當(dāng)前行

INSERT IGNORE INTO `B`.`account`(NAME,PASSWORD,email,salt)
SELECT username,PASSWORD,email,salt
FROM `A`.`users`
WHERE regdate>1418313600

部分更新

比如果只想更新password和salt字段,可以用ON DUPLICATE KEY UPDATE

INSERT INTO `B`.`u_account`(NAME,PASSWORD,email,salt)
SELECT username,PASSWORD,email,salt
FROM `A`.`bbs_ucenter_members`
WHERE regdate>1418313600 ON DUPLICATE KEY UPDATE PASSWORD=VALUES(PASSWORD),salt=VALUES(salt)

總結(jié)

replace into比較暴力,網(wǎng)上也有說慎重使用的,最好用insert into代替

疑問

以上的操作是兩個數(shù)據(jù)庫在同一臺服務(wù)器上的,直接一條sql就可以搞定
假如要導(dǎo)的兩個庫在不同的兩個服務(wù)器上要怎么做???
目前暫時的辦法:
將A庫中的user表導(dǎo)入到B庫所在的另一臺服務(wù)器上,然后寫一條sql搞定
或者查詢出指定數(shù)據(jù),導(dǎo)出sql,在sql中將insert into替換為insert ignore into(有局限性)

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • MySQL創(chuàng)建索引/判斷索引是否生效的問題

    MySQL創(chuàng)建索引/判斷索引是否生效的問題

    這篇文章主要介紹了MySQL創(chuàng)建索引/判斷索引是否生效的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Mysql row number()排序函數(shù)的用法和注意

    Mysql row number()排序函數(shù)的用法和注意

    這篇文章主要介紹了Mysql row number()排序函數(shù)的用法和注意 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • MySql數(shù)據(jù)庫分布式存儲配置實操步驟

    MySql數(shù)據(jù)庫分布式存儲配置實操步驟

    這篇文章主要為大家介紹了MySql數(shù)據(jù)庫分布式存儲配置實操步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • DQL數(shù)據(jù)查詢語句使用示例

    DQL數(shù)據(jù)查詢語句使用示例

    DQL(Data?Query?Language?數(shù)據(jù)查詢語言):用于查詢數(shù)據(jù)庫對象中所包含的數(shù)據(jù)。DQL語言主要的語句:SELECT語句。DQL語言是數(shù)據(jù)庫語言中最核心、最重要的語句,也是使用頻率最高的語句
    2022-12-12
  • 詳解MySQL如何避免克隆失敗后再次初始化

    詳解MySQL如何避免克隆失敗后再次初始化

    本文章討論了當(dāng)您沒有足夠的磁盤空間來存儲兩個數(shù)據(jù)集時,使用帶有安全選項DATA DIRECTORY 的 CLONE INSTANCE 命令,所以接下來小編給大家詳細的介紹一下,MySQL如何避免克隆失敗后再次初始化,需要的朋友可以參考下
    2023-10-10
  • 日常收集整理常見的mysql sql技巧

    日常收集整理常見的mysql sql技巧

    本篇內(nèi)容是小編日常收集整理常見的mysql sql技巧,對大家學(xué)習(xí)mysql sql技巧相關(guān)內(nèi)容有所幫助,感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • MySQL中的case?when中對于NULL值判斷的坑及解決

    MySQL中的case?when中對于NULL值判斷的坑及解決

    這篇文章主要介紹了MySQL中的case?when中對于NULL值判斷的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • mysql間隙鎖加鎖11個規(guī)則(案例分析)

    mysql間隙鎖加鎖11個規(guī)則(案例分析)

    這篇文章主要介紹了mysql間隙鎖加鎖11個規(guī)則?,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • MySQL使用變量實現(xiàn)各種排序

    MySQL使用變量實現(xiàn)各種排序

    這篇文章主要介紹了MySQL使用變量實現(xiàn)各種排序,需要的朋友可以參考下
    2017-05-05
  • 解決MySQl查詢不區(qū)分大小寫的方法講解

    解決MySQl查詢不區(qū)分大小寫的方法講解

    今天小編就為大家分享一篇關(guān)于解決MySQl查詢不區(qū)分大小寫的方法講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04

最新評論