Gå til innhold

Anbefalte innlegg

Sitter her med et problem. Har 3 tabeller der en tabell har en primary key med navn nummer. Har samme nøkkel som foreign key i 2 andre tabeller. Problemet da er at jeg vil fylle inn informasjon i de 2 tabellene med foreign key. Jeg skriver da inn en vanlig spørring:

 

INSERT INTO tabell1 (nummer, abc, def)

VALUES ('NULL', 'hei', 'heisann')

 

Dette skal jo vanligvis legge inn informasjon i en tabell, men nå får jeg bare "#1452 - Cannot add or update a child row: a foreign key constraint fails (`******/tabell1`, CONSTRAINT `tabll1_ibfk_1` FOREIGN KEY (`nummer`) REFERENCES `hovedtabell` (`nummer`)) "

 

****** satt inn for å beskytte brukernavnet.

 

Jeg har jo skjønnt at det er noe som mangler i spørringen, men jeg har søkt på google og prøvd og feilet, men kommer ikke noe lenger.

 

Jeg ville hatt det slik at når jeg la til nummer i tabell 1 så ville den bli lagret i hovedtabellen også. Noen som har noe tips? Kanskje ikke alt for lett å skjønne hva jeg vil, men vet ikke helt ellers hvordan jeg skal forklare det.

Endret av fUsiOn
Lenke til kommentar
Videoannonse
Annonse

Når jeg tenker meg om, hvorfor vil du legge inn samme informasjon i flere tabeller? Det er jo derfor du lager forbindelser mellom tabeller for å kunne hente ut tilhørende data.

 

Å lagre samme verdi i to tabeller bryter integriteten til databasen. Hva om bare den ene tabellen blir oppdatert? Da eksisterer det plutselig 2 forskjellige data om samme verdi.

 

F.eks:

En bil er registret hos biltilsynet med følgende attributter:

- Farge

- Merke

- Vognkortnr

 

En bil kan ha flere eiere som føres opp slik:

- Navn

- Personnummer

- Vognkortnr

- Farge på bil

 

Her er fargen feilplassert. Hva om neste eier velger å lakkere om bilen? Da kan samme bilen være registret som rød i biltabellen og blå i eiertabellen. Intergriteten er brutt.

Lenke til kommentar

Fikk det til ved å kjøre 2 spørringer i programmet jeg har laget. Poenget er ikke å lagre samme informasjonen i flere tabeller, men ha en fellesnever som f.eks registreringsnummer. Dette endres ikke selv om bilen skifter eier.

 

Fikk ikke dette til med å kjøre en spørring i mySQL, men fikk det til ved å kjøre to spørringer gjennom et program jeg har laget i Visual Basic. Problemet fant jeg ut etterhvert var at jeg ikke kunne lagre noen informasjon i tabell 1 eller tabell 2, uten at verdien var allerede lagt inn i hovedtabellen.

 

Altså for å få lagt til Tabell1.nummer måtte Hovedtabelll.nummer være lagt til allerede eller så hadde ikke Tabell1 noe nummer å knytte seg til.

 

Nybegynner i mySQL, suger til tider. :p

Endret av fUsiOn
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...