GNU/Linux >> Linux の 問題 >  >> Linux

ある mysql データベースから別の mysql データベースにテーブルをコピーする方法

mysqldump -u user1 -ppassword1 databasename TblName | mysql -u user2 -ppassword2 anotherDatabase

1 つのコマンドですべてを実行できます。


$L1 = mysql_connect('localhost', 'user1', 'pass1');
$DB1 = mysql_select_db('database1', $L1);   

$L2 = mysql_connect('localhost', 'user2', 'pass2');
$DB2 = mysql_select_db('database2', $L2);   

$re=mysql_query("SELECT * FROM table1",$L1);
while($i=mysql_fetch_assoc($re))
{
    $u=array();
    foreach($i as $k=>$v) if($k!=$keyfield) $u[]="$k='$v'";
    mysql_query("INSERT INTO table2 (".implode(',',array_keys($i)).") VALUES ('".implode("','",$i)."') ON DUPLICATE KEY UPDATE ".implode(',',$u),$L2) or die(mysql_error());
}

user1、pass1、database1、table1 は最初のテーブルを参照しますuser2、pass2、database2、table2 はコピーされたテーブルを参照します$keyfield はテーブルの主キーです


私はそれを捨てるだろう。 PHP ベースのものよりはるかに複雑ではありません。

mysqldump -u user1 -ppassword1 databasename > dump.sql
mysql -u user2 -ppassword2 databasename < dump.sql

MySQL リファレンス:4.5.4。 mysqldump — データベース バックアップ プログラム


同じサーバーにテーブルをコピーする必要がある場合は、次のコードを使用できます:

USE db2;

CREATE TABLE table2 LIKE db1.table1;

INSERT INTO table2  
    SELECT * FROM db1.table1;

ここからコピーして貼り付けます:codingforums.com

これは私の解決策ではありませんが、役に立ちます。


Linux
  1. phpMyAdminを使用してMySQLデータベースをコピーする方法

  2. MySQLデータベースをコピーする方法

  3. Linuxで特定の種類のファイルを検索してあるディレクトリから別のディレクトリにコピーする方法

  1. Linuxでパーミッションをあるファイルから別のファイルにコピーまたは複製する方法

  2. 最後のN行をあるファイルから別のファイルにコピーしますか?

  3. phpMyAdminを使用してデータベーステーブルをコピーする方法

  1. データベース間でMySQLテーブルをコピーする方法

  2. 破損したMysqlデータベーステーブルを修復する方法

  3. ある Git リポジトリから別のリポジトリにコミットをコピーする方法は?