TheNarsissist Skrevet 5. mai 2013 Forfatter 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,
TheNarsissist Skrevet 5. mai 2013 Forfatter 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?
quantum Skrevet 5. mai 2013 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
TheNarsissist Skrevet 5. mai 2013 Forfatter 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
quantum Skrevet 5. mai 2013 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
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å