TheNarsissist Skrevet 5. mai 2013 Forfatter Del Skrevet 5. mai 2013 Problemet er vel at jeg bare kan sette en fremmednøkkel. Feks på Person person_id der kan jeg sette en fremmednøkkel til aktivitet aktivitet_id, Person person_id eller PersonDeltarPåAktivitet aktivitet_id, Lenke til kommentar
TheNarsissist Skrevet 5. mai 2013 Forfatter Del Skrevet 5. mai 2013 Se om jeg har forstått det riktig. Det skal være en fremmed nøkkel mellom Person person_id og PersonDeltarPåAktivitet aktivitet_id OG PersonDeltarPåAktivitet person_id og mellom Aktivitet aktivitet_id og PersonDeltarPåAktivitet aktivitet_id OG PersonDeltarPåAktivitet person_id? Lenke til kommentar
quantum Skrevet 5. mai 2013 Del Skrevet 5. mai 2013 (endret) Ikke så komplisert, PersonDeltarPåAktivitet.person_id er fremmednøkkel som refererer Person.person_id og PersonDeltarPåAktivitet.aktivitet_id er fremmednøkkel som refererer Aktivitet.aktiviet_id. CREATE TABLE Aktivitet ( aktivitet_id INT AUTO_INCREMENT NOT NULL, aktivitetsnavn VARCHAR NOT NULL, PRIMARY KEY (aktivitet_id) ); CREATE TABLE Person ( person_id INT AUTO_INCREMENT NOT NULL, navn VARCHAR NOT NULL, PRIMARY KEY (person_id) ); CREATE TABLE PersonDeltarPAktivitet ( aktivitet_id INT NOT NULL, person_id INT NOT NULL, PRIMARY KEY (aktivitet_id, person_id) ); ALTER TABLE PersonDeltarPAktivitet ADD CONSTRAINT aktivitet_persondeltarpåaktivitet_fk FOREIGN KEY (aktivitet_id) REFERENCES Aktivitet (aktivitet_id) ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE PersonDeltarPAktivitet ADD CONSTRAINT person_persondeltarpåaktivitet_fk FOREIGN KEY (person_id) REFERENCES Person (person_id) ON DELETE NO ACTION ON UPDATE NO ACTION; Edit: Ser du har brukt InnoDB engine på tabellene dine, og det er fint. Hvis tabellene bruker MyISAM har disse fremmednøklene ingen effekt, mysql bare ignorerer kommandoene uten å gi advarsler eller feilmeldinger. Endret 5. mai 2013 av quantum Lenke til kommentar
TheNarsissist Skrevet 5. mai 2013 Forfatter Del Skrevet 5. mai 2013 Når jeg prøver denne kommandoen får jeg Error SQL query: CREATE TABLE Aktivitet( aktivitet_id INT AUTO_INCREMENT NOT NULL , aktivitetsnavn VARCHAR NOT NULL , PRIMARY KEY ( aktivitet_id ) ); MySQL said: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL, PRIMARY KEY (aktivitet_id) )' at line 3 Lenke til kommentar
quantum Skrevet 5. mai 2013 Del Skrevet 5. mai 2013 (endret) Du må angi lengden på varchar-feltene. (SQL'en jeg posta er generert av SQL Architect, ikke prøvekjørt) Endret 6. mai 2013 av quantum Lenke til kommentar
TheNarsissist Skrevet 5. mai 2013 Forfatter Del Skrevet 5. mai 2013 Aha, takker. Prøver igjen Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå