如何使用clojureql在列中插入默认值

如何使用clojureql在列中插入默认值,clojure,clojureql,Clojure,Clojureql,我有一个postgre表,其中“id”作为串行(自动增量列)、“name”和“instruction”列 我试图在其中插入以下内容: (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!

我有一个postgre表,其中“id”作为串行(自动增量列)、“name”和“instruction”列

我试图在其中插入以下内容:

(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
但是:

工作时,它只是将1插入id,但不执行自动增量部分


所以我有权访问该表,我有权写入该表,正如上一个conj所证明的那样!,我就是不能用默认值来写它。

我看到你在Github上打开了一张罚单,我会继续关注。但是,我会让您知道,插入的正确方法只是省略具有默认值的键,即:

(ql/conj!配方表{:名称“a”:说明“b”})


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

Clojureql有
(def^{:dynamic true}*debug*false)
。将此动态变量设置为true,然后重试,希望这会对您有所帮助。在运行insert之前,我尝试在我的repl中设置它,但它没有输出任何内容。您尝试过直接在postgres中运行查询吗?insert into recipe(名称、说明)值('a','b')有效。它将在id中插入正确的值。我认为clojureql中没有默认值的语法,或者没有文档记录,如果是这样,为什么不做一个简单的(ql/conj!recipe table{:name“a”:instructions“b”})
(ql/conj! recipe-table {:id 1 :name "a" :instructions "b"})