sql >> Database >  >> RDS >> PostgreSQL

Start de primaire sleutelnummers van bestaande rijen opnieuw na het verwijderen van het grootste deel van een grote tabel

Laat eerst de primaire sleutel vallen en maak een tijdelijke reeks.

alter table mytable drop constraint mydata_pkey;
create temporary sequence temp_seq;

Gebruik de volgorde om bij te werken:

update mytable
set id = nextval('temp_seq');

Maak de primaire sleutel opnieuw en laat de reeks vallen

alter table mytable add primary key (id);
drop sequence temp_seq;

Als er sprake is van een afhankelijkheid van een externe sleutel van deze tabel, dan zult u deze eerst moeten oplossen en zal de update een complexere procedure zijn.



  1. Wat is de syntaxis om een ​​Oracle-procedure te definiëren binnen een andere opgeslagen procedure?

  2. mysql left join retourneert onverwacht aantal rijen

  3. Powershell SQL Server-uitvoer opmaken in kolommen en rijen

  4. Oracle SQL:filteren op ROWNUM geeft geen resultaten wanneer het zou moeten