在MySQL中将表从一个数据库移动到另一个数据库

Vis*_*a S 55 php mysql

如何在不使用phpMyAdmin的情况下将表从一个数据库移动到另一个数据库?如果有可能通过PHP会更好.

use*_*728 128

ALTER TABLE .. 可用于将表从一个数据库移动到另一个数据库:

alter table my_old_db.mytable rename my_new_db.mytable
Run Code Online (Sandbox Code Playgroud)


警告:正如您所问,这是一个移动,而不是复制到新数据库!
但是您将保留表数据(如果它们适用于您的情况,则不会保留完整性约束)

关于php,php能够运行sql命令,因此它不会成为问题(如果你愿意,我可以更精确).

  • 这会产生一个错误:ERROR 1435 (HY000): Trigger in wrong schema (2认同)
  • @lal_bosdi `如果有任何触发器与使用 RENAME TABLE 移动到不同数据库的表相关联,则语句失败,错误模式中的触发器错误。指向重命名表的外键不会自动更新。在这种情况下,您必须删除并重新创建外键才能使它们正常运行。` http://dev.mysql.com/doc/refman/5.7/en/rename-table.html 您需要导出表到 sql 并在新数据库中导入。或者删除所有触发器,移动表并从备份 sql 代码创建所需的触发器。 (2认同)

GGi*_*Gio 16

整个数据库(所有表格):

mysqldump -u root databasename > dump.sql
mysql -u root databasename < dump.sql
Run Code Online (Sandbox Code Playgroud)

一张表:

mysqldump -u root -p yourpass dbname tablename | mysql -u root -p pass secondDB
Run Code Online (Sandbox Code Playgroud)

PHP:

运行PHP SELECT FROM SOURCE-DB TABLE并在TARGET-DB中运行INSERT INTO表

  • 注意:以上所有命令都是复制而不是移动。 (5认同)