【发布时间】:2012-08-27 21:22:25
【问题描述】:
当数据库在不同用户下时,将数据从一个数据库中的表复制到另一个数据库中的表的最佳方法是什么?
我知道我可以使用
INSERT INTO database2.table2 SELECT * from database1.table1
但这里的问题是database1 和database2 都在不同的MySQL 用户下。所以user1 只能访问database1,user2 只能访问database2。有什么想法吗?
【问题讨论】:
-
您可以向用户授予表级授权。见:dev.mysql.com/doc/refman/5.5/en/grant.html
-
不幸的是,这在我的情况下不起作用,因为我使用的是 Godaddy 共享托管服务器。他们不允许对数据库做这样的事情。
-
@mmdemirbas 数据库中的一个表有近 100 万行。数据库转储将是巨大的。此外,当我尝试导出时,仅导出了大约 10000 行 - 可能是由于尺寸过大。
-
我知道您可以使用 RENAME 来移动表格,而且速度非常快。复制表格是否有等效的技巧?
-
顺便说一句:您需要注意两个表中的字段列表的顺序相同。否则,必须按名称从 database1 中的表中选择字段,以便它们映射到 database2 中表中的正确字段。这个问题出现在我备份的数据库中,其中 table1 在初始创建后被修改,以及从 mysqldump 文件创建的新数据库。