2013-03-21 17 views
38

Come spostare una tabella da un database a un altro database senza utilizzare phpMyAdmin? Sarà meglio se è possibile da PHP.Spostare la tabella da un database all'altro in MySQL

+3

[Cosa hai provato?] (Http://whathaveyoutried.com) –

+1

SE hai trovato utili le risposte, non dimenticare di aumentare il voto e/o segnare correttamente. – Jordan

+1

In che modo questa domanda non è aerea? Certamente lo voglio fare (cosa che penso che farò con esportazione e importazione) – Mawg

risposta

90

ALTER TABLE .. possono essere usati per spostare le tabelle da un database a un altro:

alter table my_old_db.mytable rename my_new_db.mytable 


Attenzione: come hai chiesto, questa è una mossa, non una copia nel nuovo database!
Ma si può mantenere i dati della tabella (e non vincoli di integrità se si applicano nel tuo caso)

Per quanto riguarda PHP, PHP è in grado di eseguire comandi SQL in modo che non sarà un problema (posso essere più preciso se si desiderio).

+1

ciò produce un errore: ERRORE 1435 (HY000): Trigger nello schema errato –

+1

@lal_bosdi 'Se esistono trigger associati a una tabella che viene spostata in un altro database utilizzando RENAME TABLE, l'istruzione non riesce con l'errore Trigger in errato schema. Le chiavi esterne che puntano alla tabella rinominata non vengono aggiornate automaticamente. In questi casi, è necessario eliminare e ricreare le chiavi esterne affinché funzionino correttamente. Http://dev.mysql.com/doc/refman/5.7/en/rename-table.html È necessario esportare la tabella per SQL e importare in nuovo db. Oppure rilascia tutti i trigger, sposta la tabella e crea i trigger necessari dal codice SQL di backup. – Enyby

+0

Wow! Questo comando funziona istantaneamente rispetto a fare un 'insert into' – Nav

14

Tutto il database (tutte le tabelle):

mysqldump -u root databasename > dump.sql 
mysql -u root databasename < dump.sql 

One Table:

mysqldump -u root -p yourpass dbname tablename | mysql -u root -p pass secondDB 

PHP:

Run PHP SELECT FROM SOURCE-DBTABELLA ed eseguire INSERT INTO Table IN TARGET-DB

+0

Nota: tutti i comandi precedenti eseguono una copia anziché uno spostamento. – Sparkzz

Problemi correlati