【问题标题】:Redshift SQL Procedure to create tables用于创建表的 Redshift SQL 过程
【发布时间】:2020-01-23 15:45:03
【问题描述】:

我需要使用 Redshift SQL (PostgreSQL) 创建许多类似的表。我想像调用一个过程

call create_dc_table('table1');
call create_dc_table('table2');

等等。 我想我误解了程序在这种环境中的工作方式。我这样做了:

create or replace procedure create_dc_table(p_tblname varchar)
language plpgsql as $$
begin
  create table p_tblname
  (
    indent varchar(50),
    name varchar(32),
    datatype varchar(30),
    datalen varchar(30)
  );
end;
$$;

我希望 p_tblname 保存我传入的值“table1”,以便它读取 create table table1,但我可以这样做吗?如果是这样,怎么做? 非常感谢。

【问题讨论】:

标签: sql amazon-redshift


【解决方案1】:
create or replace procedure create_dc_table(p_tblname varchar)
as $$
begin
  execute 
      'drop table if exists '||p_tblname;
  execute
      'create table '||p_tblname
    ||'('
    ||'indent varchar(50), '
    ||'name varchar(32), '
    ||'datatype varchar(30), '
    ||'datalen varchar(30) '
    ||')';
end;
$$ language plpgsql;

call create_dc_table('test');

【讨论】:

    猜你喜欢
    • 2018-11-04
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多