sql >> Databáze >  >> RDS >> Mysql

Vkládání MySQL z jedné databáze do druhé

Váš dotaz by měl vypadat takto:

INSERT INTO newDatabase.table1 (Column1, Column2) 
SELECT column1, column2 FROM oldDatabase.table1;

AKTUALIZACE

Protože se této odpovědi dostává více pozornosti, než jsem vůbec očekával, měl bych tuto odpověď rozšířit. Za prvé, ze samotné odpovědi to nemusí být zřejmé, ale sloupce nemusí mít stejný název. Bude tedy fungovat také následující (za předpokladu, že sloupce existují v příslušných tabulkách):

INSERT INTO newDatabase.table1 (Column1, Column2) 
SELECT SomeOtherColumn, MoreColumns FROM oldDatabase.table1;

Navíc ani nemusí být skutečnými sloupci v tabulce. Jeden z příkladů transformace dat, který používám poměrně často, je:

INSERT INTO newDatabase.users (name, city, email, username, added_by) 
SELECT CONCAT(first_name, ' ', last_name), 'Asgard', CONCAT(first_name,'@gmail.com'), CONCAT(first_name,last_name), 'Damir' FROM oldDatabase.old_users;

Takže, jak je nyní zřejmější, pravidlo zní, pokud dotaz SELECT vrátí stejný počet sloupců, jaký potřebuje dotaz INSERT, lze jej použít místo VALUES.



  1. Jak vypočítat marži v MySQL

  2. postgresql - sql - počet "skutečných" hodnot

  3. Chyba příkazu alembic util nemůže najít identifikátor

  4. Převést „smalldatetime“ na „datetime2“ v SQL Server (příklady T-SQL)