无法使用 Datagrip 提交对表的更改

Posted

技术标签:

【中文标题】无法使用 Datagrip 提交对表的更改【英文标题】:Can't commit changes to table with Datagrip 【发布时间】:2017-01-13 09:50:50 【问题描述】:

我使用 Datagrip 2016.3。当我尝试更改表中的值时,我无法将其提交给数据库(Oracle SQL-DB)。

我做了什么: - 将单元格设置为/一些新值 - 按下复选标记图标(“提交”) - 和/或按 CTRL+RETURN - 关闭选项卡 - 重新打开标签 - /new 值消失了,旧值仍然存在。

我在不同的方案(和不同的数据库)上尝试了不同的表。该列可以为空,输入的值是合法的。我可以使用 Oracle SQL Developer 修改这些值。

编辑(20170116)

对于遇到问题后的大多数测试,我尝试更改本地 oracle 安装的标准 HR 架构的 COUNTRY 表。可以使用 SQL Developer 更改同一个表。

【问题讨论】:

请尝试 DataGrip 2016.3.2 并判断它是否被复制 @moscas:是的。很抱歉,但问题仍然存在。 请写信给 maxim.sobolevskiy[at]jetbrains.com,我们将继续讨论那里的示例,好吗? @moscas:你收到我的邮件了吗? 是的,并回答了 【参考方案1】:

要提交对数据库的更改,需要执行以下步骤:

    输入一行或更改一个值(该行标记为绿色) 将更改提交到数据库(带有“DB”的箭头图标) 将该更改提交到数据库(自动提交或右键单击上下文菜单并选择提交(复选标记))

【讨论】:

那是一个很奇怪的界面。选择自动提交实际上并不是“自动”提交。您仍然需要按发送到数据库图标。不是我认为大多数人所期望的。【参考方案2】:

除了接受的答案之外,您还可以通过两种方式在最新版本的 DataGrip 中自动提交更改。我在 v2020.2 上,这些是目前更永久的选项:

    将查询窗口上的 Tx: 设置从 Manual 更改为 Auto注意:重启 DataGrip 后,此设置将不会保留。

    为数据库/数据源永久更改:

按下Data Source Properties按钮(快捷键Ctrl-Alt-Shift-S):

选项选项卡 -> 连接部分 -> 事务控制 -> 自动/手动

#2 明显遗漏了我已发布反馈的 DataGrip 官方帮助文档。所以希望他们很快就会在这里添加它:https://www.jetbrains.com/help/datagrip/submitting-and-reverting-changes.html

【讨论】:

以上是关于无法使用 Datagrip 提交对表的更改的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 DataGrip 中的字符集?

从 DataGrip 中的“数据库、表、过程”搜索中排除数据库

在SQL SERVER 中对表不能设置主键

无法使用带有 securityMechanism=13 的 DataGrip 连接到 DB2

DataGrip 无法识别 PostgreSQL 数据类型

我无法使用 DataGrip 数据库客户端从本地主机连接到 docker 中的 mysql