Jeg har et lille problem ang. noget "nedarvning" i MySQL. Jeg tror, jeg vælger "medie-eksemplet", som jeg har set omtalt tidligere herinde.
Vi har f.eks. en tabel "Medie" som indeholder:
MedieID, MedieNavn, MedieType
Derudover har vi en masse "sub-tabeller", som kunne være f.eks. "VHS bånd", "DVD'er" og "CD'er".
Hver af disse undertabeller har et MedieID, som refererer til basistabellens MedieID - altså en foreign key til MedieID i tabellen "Medie".
MedieID i basisklassen er auto-increment.
Nu ønsker, jeg er indsætte et nyt medie i databasen.
Insert into Medie(MedieNavn,MedieType) values('Min film','VHS')
For nu at kunne referere til Medie-tabellen i "VHS"-tabellen, skal jeg huske at hente "Last insert-id" ud af databasen. Det er ikke noget problem. Lad os antage at det auto-genererede ID var "20" - så kan jeg nu skrive:
Insert into VHS(MedieID,Spilletid,Position) values(20,120,1)
Jeg synes bare, at det er så uhyggelig grimt. Jeg vil gerne kunne indsætte af én gang, så jeg ikke skal hente det auto-genererede ID ud først og dernæst udføre en NY query for at indsætte "resten" af mit medie.
Der må findes en pænere løsning til dette problem? :)
Løsningen er den "eneste" mulige med et autoincrement felt. Men med LAST_INSERT_ID() er det jo kun een gang man kan bruge den, i hvert fald hvis den næste tabel også har et autoincrement felt.
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.