小编jww*_*wnz的帖子

如何使用 PostgreSQL 在 DBeaver 上创建自动递增/SERIAL id 列?

我是 PostgreSQL 和 DBeaver(社区版 5.1.6 版)的新用户,并且正在寻找一种通过 DBeaver GUI在表中创建自动递增 ID 列的方法

从我的研究中我可以看出:

  1. 您可以使用 SQL 轻松设置它,例如。ID 序列号 NOT_NULL

  2. 潜在的问题是没有“串行数据类型”这样的东西,SERIAL 等同于 nextval('table_name_id_seq')。

  3. 当我在 SQL 中使用 SERIAL 命令创建表时,生成的 id 列在“默认”属性中具有 nextval('exampletable_id_seq'::regclass') 值。

例如,我尝试在新表中 DBeaver 列的“默认”属性中手动输入 nextval() 命令。nextval('mytable_id_seq') 带和不带 '::regclass;。然而,这是行不通的。

我很欣赏在 SQL 中执行此操作会更容易,并且之前有一个问题:DBeaver & PostgreSQL 中的串行数据类型问题

但是,我找不到令人满意的答案,并且能够通过 GUI 执行此操作的选项很有用,尤其是在通过 DBeaver GUI 完成其他设置的情况下。

具体来说,我的问题是:

  1. DBeaver 是否有通过 GUI 添加自动递增 ID 的功能?

  2. 如果是这样,执行此操作的步骤是什么。

非常感谢大家!

postgresql dbeaver

12
推荐指数
1
解决办法
3万
查看次数

星型算法:使用启发式值作为节点具有相同 F 值的决胜局

背景:我目前正在研究原始 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)

问题:我的问题是:

  1. 是否允许在 A-star 下使用启发式成本(H 值)在 A-Star 中实施进一步的决胜局,以打破许多节点之间与 F 值的任何僵局(其中存在具有相同 F 值的节点)? Open List 它们将按启发式值(H-Cost)升序排列)。我对此感到困惑的原因是实际的 A 星算法伪代码仅按 F 值对 Open List 进行排序。

扩展上面相同的代码,实现将是:

        @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)
  1. 如果允许这样做,是否有任何理由让我对这样做保持警惕?从逻辑上讲,我理解订购 Open List 的成本会更高。但是从我的实验来看,差异似乎不足以阻止我使用它。

非常感谢大家~

algorithm heuristics a-star

5
推荐指数
1
解决办法
2124
查看次数

标签 统计

a-star ×1

algorithm ×1

dbeaver ×1

heuristics ×1

postgresql ×1