2013-03-05 61 views
0

我喜歡有多少種語言讓你在將代碼放入代碼庫之前在terminal/shell/REPL中測試表達式。有沒有辦法測試PostgreSQL表達式 - 例如constraint的邏輯表達式 - 而不必(a)將約束添加到數據庫或(b)查詢現有數據庫? (我在找的東西很少。)如何動態測試和構建複雜的PostgreSQL表達式?

+0

不確定明白你想要什麼... – greg 2013-03-05 09:36:34

回答

2

爲測試模式的改變,而不改變架構做一個事務中:

begin; 

alter table t add foreign key (osm) references s(i); 

insert into t values (3,3); 
ERROR: insert or update on table "t" violates foreign key constraint "t_osm_fkey" 
DETAIL: Key (osm)=(3) is not present in table "s". 

rollback; 

如果你喜歡那麼測試結果commit中,而不是rollback

但如果它僅僅是一個表達式只選擇它:

select 1 > 2 
select '2012-01-01' < current_date