PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पोस्टग्रेज:सभी तालिकाओं के लिए प्राथमिक कुंजी अनुक्रम अपडेट करें

यहाँ सभी अनुक्रमों को रीसेट करने के लिए plpgsql है (pgadmin या psql या किसी अन्य क्लाइंट में चलाएँ):

do 
$$
declare
 _r record;
 _i bigint;
 _m bigint;
begin
  for _r in (
    SELECT relname,nspname,d.refobjid::regclass, a.attname, refobjid
    FROM   pg_depend    d
    JOIN   pg_attribute a ON a.attrelid = d.refobjid AND a.attnum = d.refobjsubid
    JOIN pg_class r on r.oid = objid
    JOIN pg_namespace n on n.oid = relnamespace
    WHERE  d.refobjsubid > 0 and  relkind = 'S'
   ) loop
    execute format('select last_value from %I.%I',_r.nspname,_r.relname) into _i;
    execute format('select max(%I) from %s',_r.attname,_r.refobjid) into _m;
    if coalesce(_m,0) > _i then
      raise info '%',concat('changed: ',_r.nspname,'.',_r.relname,' from:',_i,' to:',_m); 
      execute format('alter sequence %I.%I restart with %s',_r.nspname,_r.relname,_m+1);
    end if;
  end loop;

end;
$$
;

या सिंक से बाहर हो जाने पर पोस्टग्रेज के प्राथमिक कुंजी अनुक्रम को कैसे रीसेट करें?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एंटिटी फ्रेमवर्क कोर के साथ आंशिक प्राथमिक कुंजी पर ऑटो-इन्क्रीमेंट

  2. psycopg2 वास्तव में डेटा सम्मिलित नहीं कर रहा है

  3. PostgreSQL और JDBC के साथ ClassNotFoundException

  4. CommandError:ऐसा प्रतीत होता है कि आपके पास 'psql' प्रोग्राम स्थापित नहीं है या आपके पथ पर नहीं है

  5. रेल में अनंत समय सीमा के साथ समस्याएं