在导出时,有没有办法在INSERT上不包含空值?

时间:2015-06-24 01:29:24

标签: mysql mysql-workbench

使用MySQL Workbench,我们可以很好地导出模式,但它通常会导致以下形式的INSERT命令:

INSERT IGNORE INTO `user`
    (`id`, `name`, `description`)
VALUES
    (1,'Taylor Swift',NULL);

但我想读一读:

INSERT IGNORE INTO `user`
    (`id`, `name`)
VALUES
    (1,'Taylor Swift');

这可能吗?

如果使用Workbench无法实现,是否有一个命令行参数可以通过mysqldump完成此操作?

我尝试搜索SO上的其他帖子,但没有运气,似乎不是Advanced Options...区域下的复选框选项。常见用例是将数据导出并重新导入不同的环境,其中可能不存在description等列。我完全理解我可以在导出之前执行ALTER TABLE删除列。

我也看到了this post,但我非常喜欢用Workbench来做。

1 个答案:

答案 0 :(得分:1)

MySQL Workbench(使用服务器的mysqldump工具)中的正常备份过程不能省略单个列。但是你还有其他几个选择:

  1. 使用表导出向导并导出为csv。这假设您的目标应用程序可以处理csv。
  2. 创建一个仅包含要导出的列的视图(由Tim3880建议)。
  3. 尝试调整目标,而不是调整源。是否可以更改以忽略特定列?