有没有办法在clojureql中执行以下查询? :
或是否有任何解决方案来运行这些?即使我需要另一个库来做,也没关系。
答案 0 :(得分:1)
ClojureQL主要用于查询。插入(conj! table records)
和删除(disj! table predicate)
有一些支持,但它主要做的是根据关系运算符project
,select
和{提供SQL接口。 {1}}。
要执行您要求的查询,您可以进入rename
,这是ClojureQL在幕后使用的。
首先,DDL命令可以在clojure.java.jdbc
命名空间的帮助下完成:
clojure.java.jdbc.ddl
我不认为你在那里有其他两个操作的语法支持,但你可以像这样将原始查询发送到数据库。
;; create table t1 (id int, name varchar(50), age varchar(100));
(execute! db
(create-table :t1
[:id :int]
[:name "VARCHAR(50)"]
[:age "VARCHAR(100)"])
;; drop table table3;
(execute! db
(drop-table :table3)
如果你正在进行大量的migration / ddl-y类型的事情,我认为有些库有更多的语法支持,因为(execute! db
["insert into table1(id, name, age) select id, name, age from table2"])
“故意有一个非常小的DDL语法”。 (也许Lobos或Ragtime?)