ciao...
sto facendo qualche prova in locale con le foreign key...
qui su altervista non dovrebbero poter funzionare visto che il db non è innoDB...
non ho mai usato le foreign key prima d'ora... e sto facendo qualche prova iniziale...
ho creato le tabelle:
Codice:
CREATE TABLE parent (id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
CREATE TABLE child (id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=INNODB;
la colonna parent_id nella tabella child fa riferimento alla colonna id nella tabella parent.
da phpmyadmin le vedo, e vedo anche la relazione...
quindi tutto ok...
ora però non so bene come sfruttare questa relazione, o forse non ho capito come dovrebbero funzionare le cose...
mi spiego:
- se inserisco una riga nella tabella parent, e quindi valorizzo il campo parent.id, questo assume il suo valore senza alcuna ripercussione sulla tabella child
- se invece provo a valorizzare il campo child.parent_id ottengo un errore perchè il campo ha il vincolo della fk.
a questo punto mi chiedo come faccio a valorizzare il campo child.parent_id
/** edit **/
risolto...
perchè sia possibile inserire un valore deve essere un valore presente nel campo della tabella padre cui punta la fk