我是 PostgreSQL 和 DBeaver(社区版 5.1.6 版)的新用户,并且正在寻找一种通过 DBeaver GUI在表中创建自动递增 ID 列的方法。
从我的研究中我可以看出:
您可以使用 SQL 轻松设置它,例如。ID 序列号 NOT_NULL
潜在的问题是没有“串行数据类型”这样的东西,SERIAL 等同于 nextval('table_name_id_seq')。
当我在 SQL 中使用 SERIAL 命令创建表时,生成的 id 列在“默认”属性中具有 nextval('exampletable_id_seq'::regclass') 值。
例如,我尝试在新表中 DBeaver 列的“默认”属性中手动输入 nextval() 命令。nextval('mytable_id_seq') 带和不带 '::regclass;。然而,这是行不通的。
我很欣赏在 SQL 中执行此操作会更容易,并且之前有一个问题:DBeaver & PostgreSQL 中的串行数据类型问题。
但是,我找不到令人满意的答案,并且能够通过 GUI 执行此操作的选项很有用,尤其是在通过 DBeaver GUI 完成其他设置的情况下。
具体来说,我的问题是:
DBeaver 是否有通过 GUI 添加自动递增 ID 的功能?
如果是这样,执行此操作的步骤是什么。
非常感谢大家!
背景:我目前正在研究原始 A Star 算法的 8-puzzle 实现,并将其与旨在改善节点扩展的略微修改的算法进行比较(使用附加信息,当然,A Star 在同等知情的单向搜索中已被证明是最佳的)。节点的 Open List 当前按它们的 F 值(G-Cost+H-Cost)排序。
因此,在 Java 中实现这一点时,我设置了一个比较器,它按 F 值升序排列列表。
@Override
public int compare(PNode o1, PNode o2) {
return Integer.compare(o1.costF, o2.costF);
}
Run Code Online (Sandbox Code Playgroud)
问题:我的问题是:
扩展上面相同的代码,实现将是:
@Override
public int compare(PNode o1, PNode o2) {
if (o1.costF == o2.costF) {
return Integer.compare(o1.costH, o2.costH);
}
return Integer.compare(o1.costF, o2.costF);
}
Run Code Online (Sandbox Code Playgroud)
非常感谢大家~