Navicat导出整个数据库(可以直接迁移,不会因为外键关系而导致导入不了)

项目中,有时候需要把自己的数据库导出给别人或者把生产环境的数据库拿到测试系统上重现问题.
有时候导出的方式不对,就会导致想导入的时候,会因为表的外键关联关系,导致无法导入(表在SQL中的顺序和依赖外键的表生成的顺序不一样,比如表A在最前面,他外键关联了表P,但是生成和插入表A的数据的时候,表P压根还没有生成呢.)

所以要选择正确的导出方法.才能避免这些问题,以下步骤测试可行

1.选择数据传输,千万不要选转存SQL文件(这种方式就会出现问题)
这里写图片描述

2.选择存储在本地的文件
这里写图片描述

3.根据情况,选择使用完整的插入语句和删除已存在的表
这里写图片描述

不选择使用完整的插入语句,则就没有字段顺序,容易出错

INSERT INTO `accounting_strategy` VALUES ('1', '2018-01-08 10:14:42', null, '计费策略1', null);

选择了就会有

INSERT INTO `accounting_strategy` (`id`, `create_time`, `modify_time`, `name`, `version`) VALUES ('1', '2018-01-08 10:14:42', null, '计费策略1', null);

使用数据传输,带有事物

DROP TABLE IF EXISTS `accounting_strategy`;
CREATE TABLE `accounting_strategy` (
`id`  bigint(20) NOT NULL AUTO_INCREMENT ,
`create_time`  datetime NULL DEFAULT NULL ,
`modify_time`  datetime NULL DEFAULT NULL ,
`name`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`version`  int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=2

;

-- ----------------------------
-- Records of accounting_strategy
-- ----------------------------
BEGIN;
INSERT INTO `accounting_strategy` (`id`, `create_time`, `modify_time`, `name`, `version`) VALUES ('1', '2018-01-08 10:14:42', null, '计费策略1', null);
COMMIT;

使用转存SQL文件,则不会带有事物,并且默认删除表,虽然一开头设置了
关闭外键约束检查,但是最后还是会有一堆问题:
SET FOREIGN_KEY_CHECKS=0;

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for accounting_strategy
-- ----------------------------
DROP TABLE IF EXISTS `accounting_strategy`;
CREATE TABLE `accounting_strategy` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `create_time` datetime DEFAULT NULL,
  `modify_time` datetime DEFAULT NULL,
  `name` varchar(255) NOT NULL,
  `version` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of accounting_strategy
-- ----------------------------
INSERT INTO `accounting_strategy` VALUES ('1', '2018-01-08 10:14:42', null, '计费策略1', null);
  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Navicat导出整个SQL Server数据库,可以按照以下步骤进行操作: 1. 打开Navicat软件,点击连接按钮,选择SQL Server数据库类型,并填写正确的主机名、用户名和密码,点击连接以连接到数据库服务器。 2. 连接成功后,在Navicat左侧的“对象浏览器”窗口中,展开数据库节点,找到想要导出数据库。 3. 右键点击要导出数据库,选择“生成SQL文件”选项,在弹出的对话框中选择导出的选项。 4. 在导出选项中,可以选择导出表、视图、存储过程、函数等数据库对象,也可以选择导出数据库结构或数据。 5. 如果需要导出数据库的结构和数据,可以选择“完整脚本”,然后点击“下一步”按钮。 6. 在下一个对话框中,可以选择导出的文件类型,如SQL文件或者压缩文件,并选择保存文件的路径和名称。 7. 点击“下一步”按钮后,可以选择是否在导出过程中执行额外的操作,如备份数据、创建数据表等,根据需要进行选择。 8. 最后,点击“生成”按钮,Navicat将开始导出整个数据库导出过程需要一定的时间,具体时间要根据数据库的大小和复杂度而定。 9. 导出完成后,可以在指定的路径中找到导出的SQL文件,根据需要使用该文件进行数据库的备份、迁移或其他操作。 通过以上步骤,您可以使用Navicat轻松地导出整个SQL Server数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值