我正在Postgres中创建一个用于创建表的函数,该表名必须在调用函数时由用户指定
CREATE OR REPLACE FUNCTION mnth(
tablename text
)
RETURNS void as $$
BEGIN
CREATE TABLE monthly.||tablename||
(
row_id text,
left_row text,
right_row text,
left_plus text
);
END;
$$ LANGUAGE plpgsql;
在函数调用期间,用户给出的名称将是将在函数中创建的表的名称。
答案 0 :(得分:0)
您可以使用EXECUTE format
CREATE OR REPLACE FUNCTION mnth(
tablename text
)
RETURNS void as $$
BEGIN
EXECUTE format (
'CREATE TABLE %I.%I
(
row_id text,
left_row text,
right_row text,
left_plus text
)' , 'monthly',tablename );
END;
$$ LANGUAGE plpgsql;