Jetbrains Datagrip 2017.1.3,在将数据转储到 sql 插入文件时强制导出列
Posted
技术标签:
【中文标题】Jetbrains Datagrip 2017.1.3,在将数据转储到 sql 插入文件时强制导出列【英文标题】:Jetbrains Datagrip 2017.1.3, force columns exported when dumping data to sql inserts file 【发布时间】:2017-05-04 09:26:10 【问题描述】:我有一个包含大量表和数据的 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 与旧数据库中的不一样。由于数据太多,我无法手动更改所有内容。
相反,我想要这种插入:
INSERT INTO user(id_user, uuid, id_salarie, date_creation, login) VALUES (1, 1, "manuallyentereduuid" null, "example")
有什么方法可以直接用 Datagrid 做到这一点?或者可能是一种特定的 SQL 服务器以这种方式生成插入语句的方式?
不要犹豫,在 cmets 中询问更多详细信息。
【问题讨论】:
什么 DBMS? mysql? 这是一个 Microsoft SQL Server 2008 数据库。 【参考方案1】:在配置 INSERT 提取器时,您需要“跳过生成的列”选项。
【讨论】:
做到了!非常感谢您的屏幕截图,这个选项并不明显。【参考方案2】:Datagrip 似乎没有给你这种可能性,所以我使用了其他东西:DBeaver。它是免费的,并且基于 Eclipse 环境。
方法很简单:
选择所有要导出的表 右键->导出表数据从那里您只需按照说明进行操作。它为每个表输出一个文件,如果您有相应的容量,这是一件好事。我在执行整个脚本时遇到了麻烦,在使用 Datagrip 时不得不拆分它。
希望这可以帮助遇到同样问题的任何人。如果您直接在datagrip中找到解决方案,我也想知道。
编辑:见上面的答案
【讨论】:
以上是关于Jetbrains Datagrip 2017.1.3,在将数据转储到 sql 插入文件时强制导出列的主要内容,如果未能解决你的问题,请参考以下文章
无法在 JetBrains DataGrip 2020.1.4 中设置 SQLServer 连接
如何在 JetBrains DataGrip 中复制选择的查询字段名称