PostgreSQL: Create table if not exists AS

后端 未结 6 1310
不思量自难忘°
不思量自难忘° 2020-12-29 04:54

I\'m using PostgreSQL and am an SQL beginner. I\'m trying to create a table from a query, and if I run:

CREATE TABLE table_name AS
   (....query...)
<         


        
6条回答
  •  Happy的楠姐
    2020-12-29 05:12

    Try this,

    create or replace function create_table(tblname text) returns text as
    $$ 
    BEGIN
    $1 = trim($1);
    IF not EXISTS (select relname from pg_stat_user_tables where relname =$1) THEN
    execute 'create table '||$1||' as select * from tbl'; -- 
    return ''||$1||' Created Successfully !!';
    else
    return  ''||$1||' Already Exists !!';
    END IF;
    END
    $$
    language plpgsql 
    

    create or replace function create_table_qry(tblname text,qry text) returns text as
    $$ 
    BEGIN
    $1 = trim($1);
    IF not EXISTS (select relname from pg_stat_user_tables where relname =$1) THEN
    execute 'create table '||$1||' as '||$2||'';
    return ''||$1||' Created Successfully !!';
    else
    return  ''||$1||' Already Exists !!';
    END IF;
    END
    $$
    language plpgsql 
    

提交回复
热议问题