Chiavi esterne MySQL 5.0
Qualcuno sa se funzionano in mysql 5.0? Mi dicono di si....
A parte questo, qualcuno sa la sintassi esatta da mettere nella tabella in cui vengono importate le kiavi?
nel sito ho trovato questo:
CREATE TABLE score
(
reviewingid integer,
questionnumber integer,
score integer,
FOREIGN KEY (reviewingid) REFERENCES reviewing (reviewingid) on delete cascade
);
io sapevo che bastava REFERENCES ()
qualcuno le ha provate?
A parte questo, qualcuno sa la sintassi esatta da mettere nella tabella in cui vengono importate le kiavi?
nel sito ho trovato questo:
CREATE TABLE score
(
reviewingid integer,
questionnumber integer,
score integer,
FOREIGN KEY (reviewingid) REFERENCES reviewing (reviewingid) on delete cascade
);
io sapevo che bastava
qualcuno le ha provate?
Risposte
sono riuscito ad usare le chiavi esterne....il problema era il pacchetto xaamp.
bye
bye
è uguale alla mia la sintassi
FOREIGN KEY (reviewingid) REFERENCES reviewing (reviewingid) on delete cascade
il problema è che su alcune configurazioni le chiavi esterne funzionano su altre no, non si sa il motivo!!!
Mi informerò sulla mailing list e vi farò sapere, se vi interessano, le motivivazioni.
PS: EmerApostrofOmina....le chiavi esterne si usano così...il references crea la correlazione...dichiarare la chiave esterna non ha senso senza referenziarla.
FOREIGN KEY (reviewingid) REFERENCES reviewing (reviewingid) on delete cascade
il problema è che su alcune configurazioni le chiavi esterne funzionano su altre no, non si sa il motivo!!!
Mi informerò sulla mailing list e vi farò sapere, se vi interessano, le motivivazioni.
PS: EmerApostrofOmina....le chiavi esterne si usano così...il references crea la correlazione...dichiarare la chiave esterna non ha senso senza referenziarla.
bluedragon:
create table Prova( cod_articolo integer primary key references Articolo(Cod_articolo), n_vendite integer, data date );
la chiave esterna non viene considerata!!!
Perchè quella che hai appena scritto è un reference, una relazione, non una chiave esterna. E comunque dovresti sempre specificare le politiche di update e delete dopo la definizione della relazione. X le chiavi esterne puoi usare solo foreign key. Almeno Santoro così docet. :lol: :lol:
Baci.
ehi blu, benvenuto!!
mi sa che se sei cosi preparato con il mysql ti disturberemo spesso :wink:
mi sa che se sei cosi preparato con il mysql ti disturberemo spesso :wink:
Su Mysql 5.0 le chiavi esterne funzionano(a me) solo se poste nel seguente modo:
Mentre se scrivo:
la chiave esterna non viene considerata!!!
create table Prova( cod_articolo integer primary key, n_vendite integer, data date, foreign key (cod_articolo) references Articolo(Cod_articolo) );
Mentre se scrivo:
create table Prova( cod_articolo integer primary key references Articolo(Cod_articolo), n_vendite integer, data date );
la chiave esterna non viene considerata!!!
Sul 4 che io sappia non c'erano ancora le chiavi esterne, o meglio, potevi usare la sintassi ma non erano implementate. Sul 5 finalmente dicono che le hanno implementate, ma non le vedo funzionare.
Che io sappia dovrebbero fare la seguente:
tabella1--> kiave
tabella2--> reference alla chiave della tabella1.
tabella1--> ID1
tabella2--> n tuple referenziate alla tabella 1
se
tabella1--> elimina l'ID1
tabella2-->(con ON DELETE CASCADE) le tuple referenziate all'ID1 vengono cancellate.
mi sbaglio??
Che io sappia dovrebbero fare la seguente:
tabella1--> kiave
tabella2--> reference alla chiave della tabella1.
tabella1--> ID1
tabella2--> n tuple referenziate alla tabella 1
se
tabella1--> elimina l'ID1
tabella2-->(con ON DELETE CASCADE) le tuple referenziate all'ID1 vengono cancellate.
mi sbaglio??
sorry..se ancora eravamo sul 4 sapevo tre cose...
vediamo se ti aiutano, anche perche avevo pensato di migrare il server a mysql 5.0
vediamo se ti aiutano, anche perche avevo pensato di migrare il server a mysql 5.0
Ne ho saputo qualcosa in più sul manuale ufficiale di MySQL 5.0
la sintassi è la seguente
create table(,)ENGINE=INNODB;
Non so a cosa serva ENGINE=INNODB, ma dev'essere specificato in tutte le tabelle(dov'è presnete il discorso chiave esterna).
RISULTATO: da dei warnings ad ogni query di creazione tabella e niente d+.
Le chiavi esterne non funzionano ancora!!!
Qualcuno mi aiuti pls!!!!
la sintassi è la seguente
create table
Non so a cosa serva ENGINE=INNODB, ma dev'essere specificato in tutte le tabelle(dov'è presnete il discorso chiave esterna).
RISULTATO: da dei warnings ad ogni query di creazione tabella e niente d+.
Le chiavi esterne non funzionano ancora!!!
Qualcuno mi aiuti pls!!!!