如果不存在,则创建一个类型

时间:2019-06-18 10:54:47

标签: postgresql

我正在尝试运行此sql,如果不存在则创建一个新类型:

IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'ai') CREATE TYPE ai AS (a text, i int);

我在“如果”或附近出现错误,我试图找出答案,但没有帮助。我也试过了,但是还是不行:

CASE (SELECT 1 FROM pg_type WHERE typname = 'ai') WHEN IS NULL THEN CREATE TYPE ai AS (a text, i int);

“案例”附近或附近的错误

1 个答案:

答案 0 :(得分:1)

您的 <?php $file1= file_get_contents('C:\wamp64\xyz.txt'); $file2= file_get_contents('C:\wamp64\abc.txt'); $file3= file_get_contents('C:\wamp64\pqr.txt'); echo $file1.$file2.$file3; ?> 语法错误,错过了IF。根据上下文,即当您还不在PL / pgSQL块中(如函数等)时,还需要使用匿名END IF块。并且也不要忘记检查架构,否则,如果该类型已经存在于另一个架构中,您可能会得到误报。

DO

(或者,如果您已经在PL / pgSQL块中,则仅在DO $$ BEGIN IF NOT EXISTS (SELECT * FROM pg_type typ INNER JOIN pg_namespace nsp ON nsp.oid = typ.typnamespace WHERE nsp.nspname = current_schema() AND typ.typname = 'ai') THEN CREATE TYPE ai AS (a text, i integer); END IF; END; $$ LANGUAGE plpgsql; IF之间的所有内容,包括END IF;IF。)