Postgresql 使用alter table时无法连接字符串
错误:在“(”处或附近出现语法错误 第8行Postgresql 使用alter table时无法连接字符串,postgresql,plpgsql,Postgresql,Plpgsql,错误:在“(”处或附近出现语法错误 第8行 这是我在postgres中的第一个存储过程,我不确定为什么会出现此错误。在重命名为之后,必须是SQL标识符(名称),而不是字符串 由于参数只能用于数据值,不能用于标识符,而且参数只能用于SELECT和DML语句,因此不能这样做 相反,您必须构造一个SQL字符串,并使用execute(动态SQL)执行它。小心避免SQL注入问题-使用格式: BEGIN EXECUTE format( 'ALTER TABLE mysche
这是我在postgres中的第一个存储过程,我不确定为什么会出现此错误。在
重命名为之后,必须是SQL标识符(名称),而不是字符串
由于参数只能用于数据值,不能用于标识符,而且参数只能用于SELECT
和DML语句,因此不能这样做
相反,您必须构造一个SQL字符串,并使用execute
(动态SQL)执行它。小心避免SQL注入问题-使用格式
:
BEGIN
EXECUTE format(
'ALTER TABLE myschema.test RENAME TO %I',
CONCAT('test', counter)
);
END;
占位符%I
用于标识符
BEGIN
EXECUTE format(
'ALTER TABLE myschema.test RENAME TO %I',
CONCAT('test', counter)
);
END;