2013-10-28 51 views
0

有什麼方法可以在clojureql中執行以下查詢嗎? :Clojure QL:運行普通的SQL查詢

  • 插入到表1(ID,姓名,年齡)選擇ID,姓名,年齡從表2
  • 創建表t1(ID INT,名稱爲varchar(50),年齡爲varchar(100));
  • drop table table3;
  • 分析表4;

還是有什麼解決辦法來運行這些?即使我需要另一個圖書館來做,也沒關係。

回答

1

ClojureQL主要用於查詢。有一些支持插入(conj! table records)和刪除(disj! table predicate),但它所做的主要事情是基於關係運算符project,selectrename爲SQL提供接口。

要做你想要的查詢,你可以放入clojure.java.jdbc,ClojureQL在底層使用。

首先,在DDL命令可以幫助完成從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) 

我不認爲有對你有沒有其他的兩個操作語法支持,但你可能只像這樣發送原始查詢到數據庫。

(execute! db 
    ["insert into table1(id, name, age) select id, name, age from table2"]) 

如果你做了很多遷移/ DDL-Y型的東西,我覺得有一些圖書館多一點語法支持在那裏,因爲clojure.java.jdbc.ddl「故意有一個很小的DDL語法」。 (也許LobosRagtime?)