Autore |
Discussione |
|
simbad_75
Nuovo Utente
Regione: Puglia
Prov.: Bari
|
Inserito il - 30/06/2010 : 17:27:34
|
Potreste spiegarmi come eseguire il comando ALTER TABLE in questo caso: "Aggiungere alla tabella LibriAutori gli opportuni vincoli di chiave esterna." Grazie
Immagine:
29,84 KB
|
|
Dragon83
Padawan
Regione: Puglia
Città: Foggia
|
Inserito il - 30/06/2010 : 20:45:33
|
penso che la guida ufficiale ti risolverà il problema ;) http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
ALTER TABLE tbl_name
ADD [CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]
dovrebbe essere più o meno così:
ALTER TABLE LibriAutori
ADD FOREIGN KEY (Nro_autore) REFERENCES Autori(Nro_autore),
ADD FOREIGN KEY (Codice_libro) REFERENCES Libri(Codice_libro);
poi vedi tu se vuoi che si auto-aggiornino o cancellino. |
|
|
simbad_75
Nuovo Utente
Regione: Puglia
Prov.: Bari
|
Inserito il - 01/07/2010 : 10:48:37
|
Grazie Dragon83 sei stato molto chiaro,
Altra cosa nella sintassi della guida vedo l'utilizzo anche del "[CONSTRAINT [symbol]]" è corretto applicarlo nel nostro caso e nel modo seguente:
ALTER TABLE LibriAutori ADD CONSTRAINT FOREIGN KEY (Nro_autore) REFERENCES Autori(Nro_autore), ADD CONSTRAINT FOREIGN KEY (Codice_libro) REFERENCES Libri(Codice_libro);
da mysql è stato accettato ... Grazie! |
|
|
Dragon83
Padawan
Regione: Puglia
Città: Foggia
|
Inserito il - 01/07/2010 : 13:13:58
|
constraint dovrebbe riferirsi al vincolo di integrità referenziale anche se pensavo fosse sottintenso. Praticamente non ti fa fare modifiche che creano problemi di coerenza tra le tabelle.
Ad esempio se cancello un libro c'è un problema di riferimento con l'altra tabella e non me lo fa fare. Però ripeto: pensavo che questo vincolo venisse impostato in automatico. |
|
|
simbad_75
Nuovo Utente
Regione: Puglia
Prov.: Bari
|
Inserito il - 01/07/2010 : 13:20:30
|
quindi posso usarlo senza problemi nella prova di lab? |
|
|
Dragon83
Padawan
Regione: Puglia
Città: Foggia
|
Inserito il - 01/07/2010 : 14:20:19
|
Citazione: Messaggio inserito da simbad_75
quindi posso usarlo senza problemi nella prova di lab?
no, aspè. quello è un esame e quindi può darsi che il prof ti chieda di motivare; cosa che sul lavoro non ti chiedono. Io approfondirei prima di beccarmi un ca**iatone. Questa è una caratteristica fondamentale delle InnoDB che durante gli esami viene presa in grande considerazione. Prova a leggere un po' la guida online e anche sul libro. |
|
|
simbad_75
Nuovo Utente
Regione: Puglia
Prov.: Bari
|
Inserito il - 01/07/2010 : 14:47:55
|
Esempio: un quesito di una precedente appello (sempre sulla stessa base di dati) chiedeva : Aggiungere alla tabella Libri gli oppurtuni vincoli di chiave esterna soluzione proposta:
ALTER TABLE Libri ADD CONSTRAINT Libri FOREIGN KEY (Codice_editore) REFERENCES Editori(Codice_editore);
mi chiedevo se potevo fare lo stesso per il quesisto inzialmente proposto |
|
|
Dragon83
Padawan
Regione: Puglia
Città: Foggia
|
Inserito il - 01/07/2010 : 16:21:13
|
si, lo puoi fare ma siccome agli esami bisogna motivare e quindi capire cosa si sta scrivendo, ti ho consigliato di leggerti un po' la guida e il libro di testo. Io l'esame di basi l'ho già fatto da un po' e ad informatica normale. ora, se devo creare dei db uso programmi visuali perchè mi scasso a scrivere tutto il codice ogni volta, a meno che non siano poche stringhe. Perciò non so dirti precisamente come funziona quella parola chiave. mi ricordo che riguarda il vincolo spiegato prima ma ricordo anche che le InnoDB danno automaticamente quel tipo di controllo. Può darsi che ricordi male. |
|
|
|
Discussione |
|