GNU/Linux >> Znalost Linux >  >> Linux

Jak zkopírovat tabulku z jedné databáze mysql do jiné databáze mysql

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

To vše lze provést jediným příkazem.


$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 odkazuje na počáteční tableuser2, pass2, database2, table2 odkazuje na zkopírovanou tabulku$keyfield je primární klíč tabulky


Vyhodil bych to. Mnohem méně komplikované než cokoliv založeného na PHP.

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

Reference MySQL:4.5.4. mysqldump — Program pro zálohování databáze


Pokud potřebujete zkopírovat tabulku na stejném serveru, můžete použít tento kód:

USE db2;

CREATE TABLE table2 LIKE db1.table1;

INSERT INTO table2  
    SELECT * FROM db1.table1;

Je to zkopírováno a vloženo odtud:codingforums.com

Není to moje řešení, ale považuji ho za užitečné.


Linux
  1. Jak kopírovat tabulky MySQL mezi databázemi

  2. Jak najít a zkopírovat určitý typ souborů z jednoho adresáře do druhého v Linuxu

  3. Jak kopírovat nebo klonovat oprávnění z jednoho souboru do druhého v systému Linux

  1. Jak používat phpMyAdmin ke kopírování databáze MySQL

  2. Jak zkopírovat databázi MySQL

  3. Jak zkopírovat nastavení z jednoho počítače do druhého?

  1. Jak opravit poškozenou tabulku databáze MySQL

  2. Kopírovat posledních N řádků z jednoho souboru do druhého?

  3. Jak zkopírovat databázovou tabulku pomocí phpMyAdmin