42 lines
1 KiB
SQL
42 lines
1 KiB
SQL
DO $$
|
|
DECLARE
|
|
rec RECORD;
|
|
max_id BIGINT;
|
|
BEGIN
|
|
FOR rec IN (
|
|
SELECT
|
|
t.table_name AS table_name,
|
|
c.column_name AS column_name,
|
|
regexp_replace(
|
|
c.column_default,
|
|
'^nextval\(''([^'']+)''::regclass\)$',
|
|
'\1'
|
|
) AS seq_name
|
|
FROM
|
|
information_schema.columns c
|
|
JOIN
|
|
information_schema.tables t ON c.table_name = t.table_name
|
|
WHERE
|
|
t.table_type = 'BASE TABLE'
|
|
AND c.column_default LIKE 'nextval(''%''::regclass)'
|
|
AND t.table_schema = 'public'
|
|
) LOOP
|
|
EXECUTE format('SELECT COALESCE(MAX(%I), 0) FROM %I', rec.column_name, rec.table_name)
|
|
INTO max_id;
|
|
|
|
EXECUTE format('SELECT setval(''%s'', %s)', rec.seq_name, max_id + 1);
|
|
|
|
RAISE NOTICE '调整序列: % (表: %,字段: %),新值: %',
|
|
rec.seq_name, rec.table_name, rec.column_name, max_id + 1;
|
|
END LOOP;
|
|
END $$;
|
|
|
|
--
|
|
|
|
CREATE INDEX idx_zt_searchindex_fts
|
|
ON zt_searchindex
|
|
USING gin(
|
|
to_tsvector('pg_catalog.english',
|
|
coalesce(title, '') || ' ' || coalesce(content, '')
|
|
)
|
|
); |