我有兩臺數據庫具有相同的列,我們要移動,並從數據庫1替換所有值一些列數據庫數據庫A >>表2 2MySQL的 - 移動並更換列
table1的「用戶」,「用戶」在數據庫B
user表中有很多列,但我們想更換一些列‘的col1’,‘col2上’和‘COL3’
我怎樣才能做到這一點?
謝謝
編輯:我forgeted說了,我只想替換第100點的ID。
我的意思是每列有超過100個id,我想替換前100個。不是所有的
我有兩臺數據庫具有相同的列,我們要移動,並從數據庫1替換所有值一些列數據庫數據庫A >>表2 2MySQL的 - 移動並更換列
table1的「用戶」,「用戶」在數據庫B
user表中有很多列,但我們想更換一些列‘的col1’,‘col2上’和‘COL3’
我怎樣才能做到這一點?
謝謝
編輯:我forgeted說了,我只想替換第100點的ID。
我的意思是每列有超過100個id,我想替換前100個。不是所有的
當你不能夠從一個數據庫移動DATAS到另一個用一個連接,你不能用一個單一的查詢做到這一點,你需要做手工,或與第三方語言。
你需要:
databaseA
PRIMARY KEY
user
databaseB
PHP/PDO示例:
// Create 2 connections
try {
$dbA = new PDO('mysql:dbname=databaseA;host=localhost', 'root', '');
$dbB = new PDO('mysql:dbname=databaseB;host=localhost', 'root', '');
} catch (PDOException $ex) {
echo 'Connection failed: ' . $ex->getMessage();
}
// Get datas from databaseA
$result = $dbA->query("SELECT id, col1, col2, col3 FROM user");
// Prepare REPLACE query for databaseB
$query = "REPLACE INTO user (id, col1, col2, col3) VALUES";
$values = array();
foreach ($result as $row) {
array_push($values, '('.$row['id'].', "'.$row['col1'].'", "'.$row['col2'].'", "'.$row['col3'].'")');
}
$query .= implode(',', $values);
// Execute REPLACE query on databaseB
$stmt = $dbB->prepare($query);
$stmt->execute();
謝謝你,它的工作原理,但現在我有另一個問題。我僞裝說。我只想替換前100列ID。我的意思是每個cloumns有超過100個id,我想替換前100個。不是所有的 – Achilles
你能解釋一下嗎?你的目標是什麼?這些ID是什麼? – zessx
當然,我加入了兩個數據庫用戶togeather,但前100名用戶應該改變一些值。對於前100名用戶,我在另一個數據庫中擁有相同列的正確信息。所以我想把這個正確的值替換成這個數據庫。但只適用於前100名用戶,不適用於超過100個id。這個ID保存在cloumns「userid」中,我需要移動並替換col1,col2,col3值,僅用於前100個用戶ID – Achilles
如果table1
上db1
數據庫具有t1c1
,t1c2
,t1c3
列,你想只t1c1
,並t1c3
數據被複制到數據庫db2
的table2
與列t2c1
和t2c2
然後
insert into db2.table2(t2c1, t2c2) select t1c1, t1c3 from db1.table1
應該工作您。
並確保您具有設置爲從跨數據庫表或其他對象訪問數據所需的特權。如果有任何限制,您還應該檢查table2
上的問題。
謝謝,它適用於兩個表都在同一個數據庫上可用。謝謝 – Achilles
它們是否具有相同的行數和相同的主鍵? – Leo
是的,他們做 – Achilles