Advertisement
Guest User

Untitled

a guest
Sep 20th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. SELECT 'ALTER SEQUENCE '|| quote_ident(MIN(schema_name)) ||'.'|| quote_ident(MIN(seq_name))
  2. ||' OWNED BY '|| quote_ident(MIN(TABLE_NAME)) ||'.'|| quote_ident(MIN(column_name)) ||';'
  3. FROM (
  4. SELECT
  5. n.nspname AS schema_name,
  6. c.relname AS TABLE_NAME,
  7. a.attname AS column_name,
  8. SUBSTRING(d.adsrc FROM E'^nextval\\(''([^'']*)''(?:::text|::regclass)?\\)') AS seq_name
  9. FROM pg_class c
  10. JOIN pg_attribute a ON (c.oid=a.attrelid)
  11. JOIN pg_attrdef d ON (a.attrelid=d.adrelid AND a.attnum=d.adnum)
  12. JOIN pg_namespace n ON (c.relnamespace=n.oid)
  13. WHERE has_schema_privilege(n.oid,'USAGE')
  14. AND n.nspname NOT LIKE 'pg!_%' escape '!'
  15. AND has_table_privilege(c.oid,'SELECT')
  16. AND (NOT a.attisdropped)
  17. AND d.adsrc ~ '^nextval'
  18. ) seq
  19. GROUP BY seq_name HAVING COUNT(*)=1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement