datagrip 无法应用更改此 table 是只读的。无法应用单元格编辑器更改

datagrip Cannot apply changes This table is read only. Cell editor changes cannot be applied

当我想编辑选定的行然后应用它时,问题就出现了。我确定它在一段时间前有效。尝试在首选项中重新下载 postgres 驱动程序(是的,我使用 postgres)有人遇到同样的问题吗?有人成功了吗?

PS。 运行 在 142.4861.1.

我发现连接首选项中的只读复选框未设置,切换没有帮助,升级、重置也没有帮助。

真正有用的是在控制台中切换自动提交复选框,之后一切都运行完美。

尝试同步数据库连接。它帮助我 mysql 连接。

在数据源属性中设置和清除只读对我有帮助。

在多次尝试上述所有操作后,唯一真正对我有用的方法是删除每个数据库连接并从头开始重新创建一个新连接。

没有任何效果。我必须将 DataGrip 从 2017.2 更新到 2018.3

我必须通过导航到以下位置打开项目:/home/user/.DataGrip2017.2/config/projects/my_project/

这个项目的所有脚本,因为我不想从旧版本的 Datagrip 导入配置。所以我可能需要降级,获取脚本并再次升级。

试试这个

  1. 在 IDE 设置中 (Ctrl+Alt+S),转到数据库 |一般.

  2. Select 在新选项卡中打开结果复选框并单击确定。

  3. Re-run 您的查询,您将能够在新选项卡中编辑和提交更改。

我遇到了同样的问题,不是 Postgres,而是 MySql,PhpStorm 2019.1,当时我在同一个数据库连接上有两个可用模式,我的查询:select * from users where full_name like '%handy%'; 导致结果 table 即使控制台报告它正在查询 stage 架构,也无法编辑。更具体的查询:select * from stage.users where full_name like '%handy%'; 使用确切的 table 名称导致结果 table 可以内联编辑。

我能够解决此问题的唯一方法是删除给定连接的数据库连接详细信息并从头开始重新创建它们。虽然我在这个特定连接上发生了这种情况,但在其他连接上编辑工作正常,这表明问题可能与相关连接周围的特定参数有关。

对我有用的是删除字段别名 - 从这里开始:

SELECT
  l.MSKU Item_SKU,
  l.Supplier,
  l.ASIN,
  l.title,
  l.Buy_Price
FROM listings l
WHERE l.Buy_Price IS NULL
ORDER BY l.Supplier, l.listingID desc;

对此:

   SELECT
  l.MSKU,
  l.Supplier,
  l.ASIN,
  l.title,
  l.Buy_Price
FROM listings l
WHERE l.Buy_Price IS NULL
ORDER BY l.Supplier, l.listingID desc;

我只需要编辑查询结果就可以了

如果您的查询使用字段别名(重命名列而不是使用实际列名),则 Datagrip 将数据结果设置为只读。

解法: 使用 table 中的字段名称重写查询并重新运行查询。然后您就可以编辑行了。

例子

重写:

select id,interest_recalcualated_on, interest_recalculation_enabled alias from m_loan;

..为此:

select id,interest_recalcualated_on, interest_recalculation_enabled from m_loan;

这可能是由于默认设置造成的,请确保您的交易模式设置如下

对我来说,当我从特定列将 Select 查询改回 *(通配符到 select 所有列)时,编辑和保存又开始工作了。这很奇怪!可能值得向 intellij 报告错误。我在 macOs Catalina 10.15.3

上使用 DataGrip 2020.1

在我的例子中,DataGrip 的 2020.1 版本(SQL 来自打开的文件 运行,在唯一的 table 上,因此 select 只是按预期工作,但当我尝试编辑时 - 出现错误:unresolved table reference):在请求中指定方案有帮助。因此,SELECT * FROM users; 更改为 SELECT * FROM schemadb.users;,这很有帮助。可能有一个错误。以上方法我都试过了

我以为我遇到了同样的问题,但我才意识到我需要提交更改(使用按钮或命令 + 输入)才能应用它们。

虽然这个答案晚了 4 年。也许错误已经修复了哈哈,但这可能会对其他人有所帮助。

对我来说,问题很明显(识别后很明显)- 使用 MySQL 关键字作为字段名称(是的,我知道这不是一个好主意,但有时就是这样)。所以这导致了错误

select id,name,value from mytable;

正确的写法当然是使用反引号,所以:

select id,name,`value` from mytable;

这帮我解决了。

我对 datagrop 2020.2 也有同样的问题。我已经遵循了所有方法,但对我来说,只需手动删除连接并创建新连接(从不尝试复制)。成功了!