找不到我需要的东西。我有一个表需要复合主键(postgresql),但没有看到如何使用clojure.java.jdbc
完成此操作。
我想要
CREATE TABLE a_b (
f integer REFERENCES a,
g integer REFERENCES b,
PRIMARY KEY (f, g)
);
我尝试过各种各样的事情,但要点是以:primary
和:key
取代"PRIMARY KEY (a, b)"
。
(j/create-table-ddl :a_b [[:f "integer REFERENCES a"]
[:g "integer REFERENCES b"]
[:id "PRIMARY KEY (a, b)"]]) ;<=== this line
答案 0 :(得分:2)
有时绕过DSL更容易,只传递原始SQL字符串,如下所示:
(jdbc/db-do-commands raw-db-spec ["drop table if exists langs"
"drop table if exists releases"])
如果使用不常见或特定于特定数据库的功能,则尤其如此。
答案 1 :(得分:0)
似乎我找到了解决方案here。正确的方法是用[:id "PRIMARY KEY (f, g)"]
替换
["CONSTRAINT id PRIMARY KEY (f, g)"]
我会留下问题,以防其他人有类似的模式。