Jetbrains Datagrip 2017.1.3,将数据转储到 sql 插入文件时强制导出列

Jetbrains Datagrip 2017.1.3, force columns exported when dumping data to sql inserts file

我有一个 SQL 服务器数据库,其中包含大量 table 和数据。我需要在 docker 容器中本地复制它。 我已成功导出架构并复制它。当我将数据转储到 SQL 文件时,它不会导出自动生成的字段(例如 ids 或 uuids)

这是用户 table 的架构:

 create table user (
    id_user bigint identity constraint PK_user primary key,
    uuid uniqueidentifier default newsequentialid() not null,
    id_salarie bigint constraint FK_user_salarie references salarie,
    date_creation datetime,
    login nvarchar(100)
)

当它从这个 table 导出元素时,我得到了这种插入:

INSERT INTO user(id_salarie, date_creation, login) VALUES (1, null, "example")

因此,我的大部分插入都会给我外键错误,因为新数据库生成的 ID 与旧数据库中的 ID 不同。我无法手动更改所有内容,因为数据太多了。

相反,我想要这种插入:

INSERT INTO user(id_user, uuid, id_salarie, date_creation, login) VALUES (1, 1, "manuallyentereduuid" null, "example")

有什么方法可以直接使用 Datagrid 来实现吗?或者可能是特定的 SQL 服务器以这种方式生成插入语句的方式?

不要犹豫,在评论中询问更多详情。

Datagrip 似乎没有给你这种可能性,所以我使用了其他东西:DBeaver。它是免费的,并且基于 Eclipse 环境。

方法很简单:

  • Select 您要导出的所有 table
  • 右键单击 -> 导出 table 数据

从那里您只需按照说明进行操作即可。它为每个 table 输出一个文件,如果您有后续体积测定,这是一件好事。我在执行整个脚本时遇到了问题,在使用 Datagrip 时不得不将其拆分。

希望这对遇到同样问题的人有所帮助。如果直接在datagrip中找到解决方案,我也想知道

编辑: 查看上面的答案

配置 INSERT 提取器时需要选项 'Skip generated columns'。