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

时间:2017-05-04 09:26:10

标签: sql sql-server database datagrip

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

以下是用户表的架构:

 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)
)

当它从这个表中导出和元素时,我得到这种插入:

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服务器方式?

请不要在评论中询问更多细节。

2 个答案:

答案 0 :(得分:2)

配置INSERT提取器时需要“跳过生成的列”选项。

enter image description here

答案 1 :(得分:0)

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

方法很简单:

  • 选择要导出的所有表格
  • 右键单击 - >导出表数据

从那里你只需按照说明操作即可。它为每个表输出一个文件,如果你有一个随后的容量,这是一件好事。我在执行整个脚本时遇到了麻烦,在使用Datagrip时不得不拆分它。

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

编辑:请参阅上面的答案