
IF (select count(*) from orders) > 0THEN DELETE from ordersELSE INSERT INTO orders values (1,2,3);尝试:
DO$do$BEGINIF EXISTS (SELECT 1 FROM orders) THEN DELETE FROM orders;ELSE INSERT INTO orders VALUES (1,3);END IF;END$do$
要点
>标准sql中没有程序元素. IF statement是默认的程序语言PL / pgsql的一部分.您需要使用DO命令创建一个函数或执行一个ad-hoc语句.
>你需要一个在每个语句的末尾在plpgsql(except for the final END).
>你需要END IF;在IF声明的结尾.
>子选择需要用括号括起来:
IF (SELECT count(*) FROM orders) > 0 ...
要么:
IF (SELECT count(*) > 0 FROM orders) ...
尽管如此,这是相当的,快得多:
IF EXISTS (SELECT 1 FROM orders) ...
替代
你根本不需要额外的SELECT.这样做也一样,有点快:
DO$do$BEGINDELETE FROM orders;IF NOT FOUND THEN INSERT INTO orders VALUES (1,3);END IF;END$do$总结
以上是内存溢出为你收集整理的PostgreSQL IF语句全部内容,希望文章能够帮你解决PostgreSQL IF语句所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)