/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Autoincrement i PostGreSQL
Fra : Stefan Bruhn


Dato : 10-03-02 22:14

Hej!

Jeg flyttede for nyligt min database fra en webhotels MySQL til min egen
lokale PostGreSQL og der var heller ingen umiddelbare problemer der.

Nu vil jeg så til at indsætte nye data og får så at vide at der skal
være autoincrement på. Det var der før, men det er åbenbart ikke kommet
med, så det fixer jeg ved at oprette en ny tabel med autoincrement og
flytte indholdet derover.

Nu får jeg denne fejl hvis jeg prøver at indsætte noget (via phpPgAdmin,
eller uden)

PostgreSQL said: ERROR: Cannot insert a duplicate key into unique index
artists_pkey
Your query:
INSERT INTO "artists" ("id", "name", "style", "website", "rc", "rcurl",
"timestamp") VALUES (NEXTVAL('"artists_id_seq"'::text), 'test', 'test',
NULL, NULL, NULL, '2002-03-10 22:07:36')

Det jeg får ud af den fejlbesked er at den rimeligvis forsøger at
indsætte fra starten af talrækken istedet for at fortsætte efter det
højeste ID der findes. Hvordan fixer jeg det?

--
Mvh. Stefan
Website: http://www.3x7.dk/ | http://ghashul.dk/
"I demand the right to keep and arm bears"
"A computer without Windows, is like a fish without a bicycle"

 
 
Mads Lie Jensen (10-03-2002)
Kommentar
Fra : Mads Lie Jensen


Dato : 10-03-02 23:41

On Sun, 10 Mar 2002 22:13:51 +0100, Stefan Bruhn <devnull@bruhn.tk>
wrote:

>PostgreSQL said: ERROR: Cannot insert a duplicate key into unique index
>artists_pkey
>Your query:
>INSERT INTO "artists" ("id", "name", "style", "website", "rc", "rcurl",
>"timestamp") VALUES (NEXTVAL('"artists_id_seq"'::text), 'test', 'test',
>NULL, NULL, NULL, '2002-03-10 22:07:36')
>
>Det jeg får ud af den fejlbesked er at den rimeligvis forsøger at
>indsætte fra starten af talrækken istedet for at fortsætte efter det
>højeste ID der findes. Hvordan fixer jeg det?

Følgende burde gøre det:

$max_id = SELECT max(id) FROM 'artists';
SELECT setval('artist_id_seq', $max);

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk

Directory Opus - nu også til windows - http://www.gpsoft.com.au

Stefan Bruhn (11-03-2002)
Kommentar
Fra : Stefan Bruhn


Dato : 11-03-02 22:34

On Sun, 10 Mar 2002 23:40:57 +0100, Mads Lie Jensen <mads@gartneriet.dk>
wrote:

>Følgende burde gøre det:
>
>$max_id = SELECT max(id) FROM 'artists';
>SELECT setval('artist_id_seq', $max);

Jeg takker og bukker! Det virker jo!

--
Mvh. Stefan
Website: http://www.3x7.dk/ | http://ghashul.dk/
"I demand the right to keep and arm bears"
"A computer without Windows, is like a fish without a bicycle"

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste