Database 数据导入是否替换MySQL工作台中的现有数据?

Database 数据导入是否替换MySQL工作台中的现有数据?,database,mysql-workbench,Database,Mysql Workbench,我正在MySQL工作台的开发环境中使用数据库。我已经准备好了一切,需要将其移动到prod数据库。我已将其导出到sql文件,但我不确定是否以正确的方式进行导入 如果我使用“数据导入/还原”功能,选择我的SQL文件并导入,它会替换数据库中的现有数据(我希望发生的事情),还是会为新数据向每个表中添加新记录 每个数据库中的模式都相同。我只需要用来自dev的新数据替换prod数据库中的旧数据 感谢您的帮助,这取决于导出文件的外观。只需在文本编辑器中打开它并阅读导出文件中的语句 默认情况下,它应该包含如下语

我正在MySQL工作台的开发环境中使用数据库。我已经准备好了一切,需要将其移动到prod数据库。我已将其导出到sql文件,但我不确定是否以正确的方式进行导入

如果我使用“数据导入/还原”功能,选择我的SQL文件并导入,它会替换数据库中的现有数据(我希望发生的事情),还是会为新数据向每个表中添加新记录

每个数据库中的模式都相同。我只需要用来自dev的新数据替换prod数据库中的旧数据


感谢您的帮助,这取决于导出文件的外观。只需在文本编辑器中打开它并阅读导出文件中的语句

默认情况下,它应该包含如下语句:

CREATE TABLE IF NOT EXISTS `customer` (
  `CUSTOMER_ID` int(11) NOT NULL,
  `CUSTOMER_NM` varchar(100) DEFAULT ''
) EN
紧接着就是这个表的数据:

INSERT INTO `customer` (`CUSTOMER_ID`, `CUSTOMER_NM`) VALUES
(0, 'Dummy Customer');
(1, 'Dummy Two');
由于您的表已经存在于PROD环境中,因此不会删除、创建或替换它们(请注意
createtable IF Note EXISTS
-语句)。
INSERT
-stament将被执行(没有条件表明不应该执行)

因此,在导入文件后,您的数据库中将包含以前的PROD数据+您的DEV环境中导入的DEV数据

另一方面,它可能包含如下语句:

DROP TABLE IF EXISTS `customer`

紧接着是
CREATE
-语句,后面是一些
INSERT
-语句。在这种情况下,整个
PROD
-数据库将被DEV数据库替换,正如您所希望的那样。

您可以使用特定于MySQL的
replace
语句来实现此目标

你可以很容易地控制自己。只需删除要导入的模式。那你就百分之百肯定了。