DBeaver - 列“列名”是只读的:没有相应的表列。

27

我在 Mac 上使用 DBeaver,突然无法编辑 / 更新任何结果单元格,我收到以下消息:

列“列名”是只读的:没有对应的表列。

但是,当我使用 UPDATE 命令时,它可以正常工作。

挑战在于我需要进行多个更新,并且在结果单元格中进行操作非常方便。

其他用户仍然可以执行此操作,我怀疑这与我的 DBeaver 客户端有关。

您有什么想法吗?谢谢!


7个答案却都不是有效的答案,还没有任何评论。令人难以置信。 - Dimitar
13个回答

29

我曾经遇到同样的问题,当我从脚本中添加了一列并尝试通过UI更新表格数据时。这个问题可以通过断开并重新连接到数据库来解决,因为DBeaver当前不会刷新DDL。


8
如果您创建了一个新表格,但是单元格没有更新,那么DBeaver可能没有刷新您创建的表格。在这种情况下,您只需要在侧边栏中点击刷新选项即可。

1
这个对我有用,DBeaver 22.1.0 linux。 - Noob17

3

我也遇到了同样的问题,在then选择子句中省略rowid作为列后得以解决。这似乎是22.3.3版本中命名和*作为列选择器之间的冲突。尝试仅使用*或显式选择列名。


3
如SKIFO所提到的,刷新表格是有效的。您可以从左侧菜单中进行操作。

dbeaver screenshot


2

感谢大家的反馈和建议。不幸的是,从提出的解决方案中没有任何一个起作用,或者修复这个问题需要太多的工作。

我降级到了版本22.2.2,现在一切都完美地运行了。

再次感谢!


1
刚遇到相同的问题,解决方法是在数据库导航器中刷新表格,确实很奇怪,之前的更新之前从未遇到过这个问题。

根据目前的写法,你的回答不够清晰。请编辑以添加更多细节,帮助其他人理解这如何回答所提出的问题。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - Community

1

这真的很愚蠢。我通过从脚本主体中删除注释来修复它。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community
这对我也起作用。如果SQL查询包含注释,表编辑器会因某种原因被锁定。在移除查询的内联注释后,表编辑器就不再被锁定。 例如:SELECT * FROM table #mycomment 是不起作用的。 - undefined

1
在我的情况下,我在查询之前有一个带有 # 而不是 -- 的注释。因为某种奇怪的原因(也许有解释,我不知道),当我在注释和我的 SELECT 查询之间插入一个空行时,它不会给我这个消息,并且允许我在二进制编辑器中进行编辑。
注意:根据我在我的 Intel Mac 上的观察,使用 DBeaver 版本 23.1.5.
看起来这在 GitHub 上已经报告了:https://github.com/dbeaver/dbeaver/issues/18851#issuecomment-1408289013 编辑1:添加 GitHub 链接
编辑2:澄清注释消息类型

0
只需关闭DBeaver并重新启动它。希望这样能解决问题。

0

遇到了相同的问题。更新到23.0.1版本有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接