13. november 2011 - 11:06Der er
21 kommentarer og 1 løsning
Foreign key
Sidder med foreign key og har brug for jeres hjælp. Anvender InnnoDB i begge af mine tabeller, som har følgende id: Navn_id og den anden tabel Adresse_id.
Under relation har jeg gjort følgende: valgt tabelnavn og Adresse_id On DELETE: NOT NULL ON UPDATE: CASCADE
Fejlmeddelelse: Error creating foreign key on adresse_id (check data types)
Formålet er at man først skal indtaste navn, brugernavn osv., efterfølgende indtaste adresseoplysninger på en ny side. Der skal være en relation mellem disse tabeller, når man indtaster de forskellige oplysninger.
Jeg havde ikke sat INT til noget, PhpMyAdmin har automatisk sat den til 11. Nu har jeg prøvet at ændre til 10 i tabel 2, for at ændre data typen, men det har vist ingen betydning.
Havde lige overset, at jeg har fået denne fejlmeddelelse, når jeg tilføjede index: The indexes PRIMARY and navn_id seem to be equal and one of them could possibly be removed.
Fra tabel 2 adresse_id: $sql2 = "INSERT INTO $Adresse VALUES ('$Adresse')";
har fjernet begge id'er i din insert da de begge to er AUTO INCREMENT ?
Jeg ville nok lave en Procedure til at gøre det.
DELIMITER $$
CREATE PROCEDURE `userprocedure`(in navn_ varchar(255), in brugernavn_ varchar(255), in adresse_ varchar(255)) BEGIN INSERT INTO Adresse(adresse) VALUES (adresse_); INSERT INTO INSERT INTO Brugere (navn, brugernavn, adresse_id .....)" VALUES(navn_, brugernavn_,(select max(adresse_id) AS adresse_ID FROM Adresse)); END
Betyder det at alt det jeg skriver i tabel to under feltet adresse, bliver identificeret i tabel 1 under $Adresse_id ? Og ved hvilket navn, brugernavn har relation til en bestemt adresse?
Jeg vil prøve at ændre det :) , men skal først få tilføjet foreign key, som stadig driller bl.a. med index.
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.