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? :)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.