Avatar billede Slettet bruger
28. marts 2005 - 19:20 Der er 3 kommentarer og
1 løsning

Sequences efter restore

Hejsa, jeg har lige importeret / restored et dump fra en postgreSQL-database til en anden, men mine sequences er fucked up, som om de ikke kom med?

Findes der en "nem" løsning, så jeg bliver fri for at iterere igennem alle sequences, og krydstjekke next_val med primær-nøgler / uniques på deres tilhørende tabeller?

Hvad er jeres forslag til en løsning?

På forhånd tak, hilsen Anders.
Avatar billede dsj Nybegynder
29. marts 2005 - 10:15 #1
Dine sequences er kommet med, men de har ikke fået opdateret deres værdier, hvilket ikke sker automatisk. Det kan du gøre med følgende statement:

SELECT setval('<sequence_name>', max(<primary_key>)) FROM <table>;
Avatar billede Slettet bruger
29. marts 2005 - 10:18 #2
Super, tusind tak for hjælpen, prøver det når jeg kommer hjem. Er der egentligt nogen ide i at de ikke automatisk bliver opdateret? Hvad kan man opnå vha. det?
Avatar billede Slettet bruger
29. marts 2005 - 10:25 #3
Jamen, hov.... så skal jeg jo alligevel iterere igennem alle tabellerne, bruge "\d <tablename>" finde ud af sekvensnavne, der er måske bare ikke en enkelt simpel løsning?

Hrmmm, det ser ud til jeg må lave et script der kan iterere sig igennem alle tabeller, tjekke for sequences og så gøre den på den måde - så er spørgsmålet bare... "Hvordan får man fat i navnet på sequences for en table, i en query?"
Avatar billede dsj Nybegynder
29. marts 2005 - 10:45 #4
Automatisk opdatering af sequences kan f.eks. være et problem, hvis nu man afvikler et script der forsøger at overskrive en eksisterende sequence, hvilket vil fejle, og efterfølgende automatisk opdaterer det, vil den ændre en eksisterende sequence.

Jeg kender desværre ikke lige en måde at få fat i navnene på eksisterende sequences. I MS SQL kan det lade sig gøre, fordi der er adgang til tabeller indeholdende metadata, men det er der så vidt jeg ved ikke i PostgreSQL. Men ellers tager det vel ikke så lang tid at skrive et setval-statement for hver sequence...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester