我正在使用MySQL。 我有一个"客户"数据库A中的表(位于服务器上)。
我想将它们添加到数据库B(位于localhost上)的customer表中,而不删除任何内容。
我对SQL命令或MySQL一般都很陌生,所以尽量做到最具说明性。 如果您需要更多关于某些内容的信息,我将编辑帖子并添加它。
(我有MySQL工作台)
感谢。
答案 0 :(得分:1)
只需在localhost:
上使用它mysqldump -u YOUR_DATABASE_USER -p YOUR_DATABASE_PASS -h YOUR_SERVER_IP databaseA customers > customer.sql
mysql -u YOUR_DATABASE_USER -p YOUR_DATABASE_PASS databaseB < customer.sql
PD:如果想要一些解释,请告诉我
答案 1 :(得分:1)
在服务器上(数据库A):
# Sets our database as default, so we wont have to write `database`.`table` in the consecutive queries.
# Replace *database* with your database name.
USE *database*;
# Makes a copy of the customers table - named customers_export.
# This copy contains all the fields and rows from the original table (without indexes),
# and if you want, you can add a WHERE clause to filter out some data
CREATE TABLE `customers_export` SELECT * FROM `customers`;
由于您使用的是mysql_workbench,请选择相关数据库并执行数据导出(在管理部分),仅 customers_export表。
在localhost(DB B):
假设数据库名称相同(否则您将需要更改转储文件中的数据库名称),请通过选择我们在上一步中导出的转储文件来执行数据导入/还原。 这将创建customer_export表。
# Set as default
USE *database*;
# If the data you want to import contains *NO* collisions (same primary or unique values in both tables), the structure and table name is the same
INSERT INTO `customers` SELECT * FROM `customers_export`;
我们完成了。
如果确实存在冲突,或者您想要更改列名,某些值等,则需要修改select语句或更新customers_export表以满足您的需求。
另外,备份第二台服务器上的customers表 - 以防插件出现问题。
最后 - 删除两台服务器上的customers_export表。