PostgreSQL创建索引并检查表是否存在

时间:2018-04-19 17:03:52

标签: postgresql

我运行PostgreSQL版本9.6.4并且需要创建一个索引,但是如果表和索引已经存在,则希望在创建索引之前进行检查。我尝试执行以下操作,但语法错误:

DO $$
BEGIN
IF (SELECT to_regclass('public.areacrossing') != null) THEN 
    CREATE INDEX IF NOT EXISTS areac_d_idx
    ON public.areacrossing USING btree
    (d_id)
    TABLESPACE pg_default;
END 
$$


ERROR:  ERROR:  Syntaxerror at the end of input
LINE 27: $$
         ^


SQL state: 42601
Character: 508

感谢Laurenz Albe - 解决方案是:

DO $$
BEGIN
    IF (SELECT to_regclass('public.areacrossing') IS NOT null) 
    THEN 
        CREATE INDEX IF NOT EXISTS areac_d_idx
        ON public.areacrossing USING btree
        (d_id)
        TABLESPACE pg_default;
    END IF;
END $$;

1 个答案:

答案 0 :(得分:0)

这不是Python;您必须使用 mongoose.connect( `mongodb://localhost:10255/?ssl=true`, { auth: { user: "localhost", password: "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==", dbName: "admin" } } ); 关闭const encodedPassword = encodeURIComponent("C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="); mongoose.connect(`mongodb://localhost:${encodedPassword}@localhost:10255/admin?ssl=true`); 块。

正确的缩进可以帮助您避免此类错误。