国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql不同數據庫不同數據表導入數據

2024-07-24 13:07:45
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了mysql不同數據庫不同數據表導入數據的相關資料,需要的朋友可以參考下

背景

現在我有這么一個需求:

數據庫A的user表需要導入到數據庫B的account表

user表字段:uid,username,email,password,regdate,salt

account表字段:id,name,email,password,type,salt

導入的字段只有username,email,password,salt,并且regdate需要符合某個條件

下面分幾種情況來寫sql,主要區分insert into和replace into

情況

導入的數據在B庫的表中完全不存在

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

 

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

導入的數據部分存在

數據部分存在為了區分需要在兩個表添加唯一索引,這個唯一索引(UNIQUE)必須是導入的字段里面的值

我在兩個表中分別為username和name字段添加唯一索引

直接替換

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

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

 

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

忽略重復

用IGNORE關鍵字,如果遇到重復,不會操作當前行

 

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

部分更新

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

 

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

總結

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

疑問

以上的操作是兩個數據庫在同一臺服務器上的,直接一條sql就可以搞定

假如要導的兩個庫在不同的兩個服務器上要怎么做啊?

目前暫時的辦法:

將A庫中的user表導入到B庫所在的另一臺服務器上,然后寫一條sql搞定

或者查詢出指定數據,導出sql,在sql中將insert into替換為insert ignore into(有局限性)

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奇台县| 福清市| 桐庐县| 漳平市| 呼玛县| 尼勒克县| 镇康县| 资阳市| 宁陕县| 普格县| 喜德县| 嘉荫县| 松原市| 大竹县| 华容县| 通榆县| 东方市| 淮南市| 太康县| 昌图县| 铜鼓县| 宁陕县| 黄龙县| 新巴尔虎左旗| 文登市| 扎囊县| 塔城市| 中江县| 阳西县| 徐水县| 故城县| 周宁县| 丹东市| 海盐县| 平定县| 达州市| 东方市| 尤溪县| 鹤峰县| 遂川县| 乐至县|