create table sample (s varchar,s1 varchar,s2 varchar,s3 varchar,s4 varchar);
insert into sample values ('A','A','A','A','A');
insert into sample values('AB','AB','A','AB','AB');
insert into sample values('A','AB','A','AB','A');
insert into sample values('CA','A','A','CA','CA');
select * from sample
을 그리고이
create or replace function f1(_table text,_oldVal text,_newVal text) returns void as
$$
declare
rw record;
begin
for rw in
select 'UPDATE '||$1||' SET '||C.COLUMN_NAME||' = REPLACE ('||C.COLUMN_NAME||','''||$2||''','''||$3||'''); ' QRY
FROM (select column_name from information_schema.columns where table_schema='public' and table_name =$1)c
loop
EXECUTE rw.QRY;
end loop;
end;
$$language plpgsql
같은 시도 및 통화
select f1('sample','A','Z')
select * from sample
또는
do
$$
declare
rw record;
begin
for rw in
select 'UPDATE sample SET '||C.COLUMN_NAME||' = REPLACE ('||C.COLUMN_NAME||',''Z'',''A''); ' QRY
FROM (select column_name from information_schema.columns where table_schema='public' and table_name ='sample')c
loop
EXECUTE rw.QRY;
end loop;
end;
$$;
select * from sample
실제로 열 이름을 직접 변경하려고합니까? alter table 쿼리처럼? 아니면 단지 행의 내용입니까? –
열 이름을 변경하고 싶지 않습니다. 행의 내용을 바꾸기 만하면됩니다. – akhi