From f75a471f6bb015222eca5c8b0267672b9cd6896c Mon Sep 17 00:00:00 2001 From: wuxiaoqing Date: Wed, 13 Sep 2017 18:46:22 +0800 Subject: [PATCH] use CREATE TABLE IF NOT EXISTS --- architect/databases/postgresql/partition.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/architect/databases/postgresql/partition.py b/architect/databases/postgresql/partition.py index fad53d5..70b7dfe 100644 --- a/architect/databases/postgresql/partition.py +++ b/architect/databases/postgresql/partition.py @@ -45,18 +45,14 @@ def prepare(self): {variables} END IF; - IF NOT EXISTS( - SELECT 1 FROM information_schema.tables WHERE table_name=tablename) - THEN - BEGIN - EXECUTE 'CREATE TABLE ' || tablename || ' ( - CHECK (' || checks || '), - LIKE "{{parent_table}}" INCLUDING DEFAULTS INCLUDING CONSTRAINTS INCLUDING INDEXES - ) INHERITS ("{{parent_table}}");'; - EXCEPTION WHEN duplicate_table THEN - -- pass - END; - END IF; + BEGIN + EXECUTE 'CREATE TABLE IF NOT EXISTS ' || tablename || ' ( + CHECK (' || checks || '), + LIKE "{{parent_table}}" INCLUDING DEFAULTS INCLUDING CONSTRAINTS INCLUDING INDEXES + ) INHERITS ("{{parent_table}}");'; + EXCEPTION WHEN duplicate_table THEN + -- pass + END; EXECUTE 'INSERT INTO ' || tablename || ' VALUES (($1).*);' USING NEW; RETURN NEW;