如何动态测试和构建复杂的PostgreSQL表达式?

时间:2013-03-05 01:55:42

标签: postgresql

我喜欢在将它们放入代码库之前,有多少种语言可以在终端/ shell / REPL中测试表达式。有没有办法尝试PostgreSQL表达式 - 例如constraint的逻辑表达式 - 而不必(a)将约束添加到数据库或(b)查询现有数据库? (我正在寻找最小的东西。)

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

Postgres documentation on queries中所述,以下是合法的SQL查询:

SELECT random();

只需替换你选择的表达方式。