2

我有一个带有“id”作为序列(自动增量列)、“名称”和“指令”列的 postgre 表。

我正在尝试将其插入为:

(ql/conj! recipe-table {:id nil :name "a" :instructions "b"})

*Evaluation aborted

(ql/conj! recipe-table {:id :default :name "a" :instructions "b"})

*Evaluation aborted

(ql/conj! recipe-table {:name "a" :instructions "b"})

*Evaluation aborted

但:

(ql/conj! recipe-table {:id 1 :name "a" :instructions "b"})

有效,它只是将 1 插入 id,但它不执行自动增量部分。

所以我可以访问表,我有权写入它,正如最后一个 conj 所证明的那样!我只是不能用默认值写入它。

4

1 回答 1

1

我看到你在 Github 上开了一张票,我会在那里跟进。然而,我会让你知道,正确的插入方法是简单地省略具有默认值的键,即:

(ql/conj!recipe-table {:name "a" :instructions "b"})

如果您愿意发布生成您正在使用的确切表的 SQL 代码,我将很乐意尝试重现该问题并纠正我可能发现的任何错误。这是一个经过测试的场景,因此我们要么查看已通过单元测试的回归,要么查看您的数据库问题。

于 2012-04-11T16:48:53.970 回答