Avatar billede dsj Nybegynder
15. april 2003 - 16:05 Der er 8 kommentarer og
2 løsninger

Autoincremment for to tabeller

Kan man i MySQL to tabeller der deler en primærnøgle, dvs. at de to tabellers primærnøgler "deler" den samme tæller og derved ikke for sammenstødende værdier, og hvordan?

I Orcale har man triggers, hvilket gør det muligt, men hvad med MySQL?
Avatar billede erikjacobsen Ekspert
15. april 2003 - 16:07 #1
Hvorfor har du to?

Men den ene er nok den primære tabel. Sæt ind i den, aflæs nummeret
med last_insert_id(), og sæt det ind i den anden når du skal bruge det.
Kan gøres i ren SQL.
Avatar billede fsconsult.dk Nybegynder
15. april 2003 - 16:11 #2
Jeg tror det er COLLATIONS (mener jeg det hedder) du tænker på i Oracle. Triggers benyttes til at udføre en automatisk handling efter insert/update/delete af en post i databasen.
Avatar billede dsj Nybegynder
15. april 2003 - 16:27 #3
Nej jeg kan ikke bruge last_insert_id().

Når tælleren i tabel-1 er nået til f.eks. 3, skal det næste id i tabel-2 være 4, og næste id igen i tabel-1 være 5 !

Den går ikke med last_insert_id().
Avatar billede erikjacobsen Ekspert
15. april 2003 - 16:44 #4
Nej, det går ikke med autoincrement. Du skal samle din autoincrement i én tabel. Der er ingen grund til andet. Hvorfor har du 2?
Avatar billede dsj Nybegynder
15. april 2003 - 16:47 #5
Grunden er at det drejer sig om to tabeller med meget store datamængder, og samtidig har indholdet logisk set ikke noget med hinanden at gøre, så for på applikations-siden at skille det op er det blevet lagt ud i to tabeller.
Avatar billede erikjacobsen Ekspert
15. april 2003 - 17:06 #6
Hvis det logisk ikke har noget med hinanden at gøre, hvorfor så have forskellige id-er
i de to tabeller?

Men du kan jo altid lave en tabel ekstra som alene holder styr på
autoinc-id-er. Du kan i hvert ikke andet i MySql
Avatar billede arne_v Ekspert
15. april 2003 - 22:19 #7
Mit standard råd i den her slags tilfælde er ikke at bruge
databasens autoincrement feature men at lave det i applikationen.

Jeg vil anbefale Scott Amblers high-low approach for god
performance.
Avatar billede erikjacobsen Ekspert
15. april 2003 - 22:23 #8
Jeg vil nu gerne høre hvad formålet er. Hvis det er fordi
det skal modellere to nedarvninger i et klassediagram, kan man
netop bruge mit forslag - passende tilpasset.
Avatar billede dsj Nybegynder
18. april 2004 - 21:25 #9
Lukker.
Avatar billede dsj Nybegynder
05. maj 2004 - 23:56 #10
Lukker endnu en gang - efter eksperten gik ned.
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