civilvar 发表于 2018-10-15 13:54:26

mysqldump导出sql中insert语句的问题

今天有同事问,mysqldump怎么样才能够将导出的sql中,每条记录对应一个insert语句,默认总是导出一个长的insert语句,如下所示:  $ mysqldump --compact-uroot test t1> a
  $ more a
  CREATE TABLE `t1` (
  `id` int(10) default NULL,
  UNIQUE KEY `idx_1` (`id`)
  ) ENGINE=MyISAM DEFAULT CHARSET=gbk;
  INSERT INTO `t1` VALUES (1),(2),(3);
  我们希望把导出语句中的insert改为:
  INSERT INTO `t1` VALUES (1);
  INSERT INTO `t1` VALUES (2);
  INSERT INTO `t1` VALUES (3);
  这样在不支持insert多值的数据库中,可以很方便的进行迁移,其实方法很简单,只需要加--extented-insert=false即可:
  $ mysqldump --compact --extended-insert=false -uroot test t1> a
  $ more a
  CREATE TABLE `t1` (
  `id` int(10) default NULL,
  UNIQUE KEY `idx_1` (`id`)
  ) ENGINE=MyISAM DEFAULT CHARSET=gbk;
  INSERT INTO `t1` VALUES (1);
  INSERT INTO `t1` VALUES (2);
  INSERT INTO `t1` VALUES (3);
  我们从mysqldump中可以看到此参数的默认值为true:
  $ mysqldump --help|grep extended-insert
  。。。。。。
  extended-insert                   TRUE

页: [1]
查看完整版本: mysqldump导出sql中insert语句的问题