存储过程中遇到的一个问题
这是建表语句
CREATE TABLE DailyEngGen (DATE date , PRIMARY KEY (date), WF_A float NOT NULL DEFAULT 0, WF_B float NOT NULL DEFAULT 0,WF_C float NOT NULL DEFAULT 0)
这是存储过程
CREATE OR REPLACE FUNCTION INSERT_DAILY() RETURNS integer AS
$body$
DECLARE
cl integer;
_column varchar(10);
BEGIN
cl = 1;
FOR cl IN 1..21 LOOP
IF(cl < 10) THEN
_column = 'A_0'||cl;
ALTER TABLE dailyenggen ADD _column FLOAT(2) NOT NULL DEFAULT random()*5 + 15;
ELSE
_column = 'A_'||cl;
ALTER TABLE dailyenggen ADD _column FLOAT(2) NOT NULL DEFAULT random()*5 + 15;
END IF;
END LOOP;
RETURN cl;
END
$body$
language plpgsql;
SELECT * FROM INSERT_DAILY();
这是错误
ERROR: column "_column" of relation "dailyenggen" already exists
Where: SQL statement "ALTER TABLE dailyenggen ADD _column FLOAT(2) NOT NULL DEFAULT random()*5 + 15"
PL/pgSQL function insert_daily() line 11 at SQL statement
无论在_column的位置写什么,比如“CCC”,也会出现同样错误,不知道有没有这方面的专家或大神,谢谢大家