아래의 내용으로 인덱스를 최신으로 바꿔줘야함..
안하면 duplicate key value violates unique constraint 에러를 만나게됨..
DO $$
DECLARE
r RECORD;
BEGIN
FOR r IN
SELECT
n.nspname AS schema_name,
c.relname AS table_name,
a.attname AS column_name,
pg_get_serial_sequence(
quote_ident(n.nspname) || '.' || quote_ident(c.relname),
a.attname
) AS seq_name
FROM pg_class c
JOIN pg_namespace n ON n.oid = c.relnamespace
JOIN pg_attribute a ON a.attrelid = c.oid
WHERE c.relkind = 'r'
AND pg_get_serial_sequence(
quote_ident(n.nspname) || '.' || quote_ident(c.relname),
a.attname
) IS NOT NULL
LOOP
EXECUTE format(
'SELECT setval(%L, COALESCE((SELECT MAX(%I) FROM %I.%I), 1), true)',
r.seq_name,
r.column_name,
r.schema_name,
r.table_name
);
END LOOP;
END $$;
ㅇㅇ
댓글 없음:
댓글 쓰기