V I S U A L I Z Z A D I S C U S S I O N E |
Virginio |
Inserito il - 01/02/2009 : 03:02:04 Ciao,avrei bisogno di una risposta...in riferimento alla traccia di laboratorio del 19 gennaio 2009 (http://www.laureateci.it/Public/data/s3th/2009123175834_prova090119_1.ZIP)...quando inserisco la tabella Filiali con Nro_filiale chiave primaria, devo aggiornare il vincolo sulla tabella scorte, nel senso che Nro_filiale di scorte deve "puntare" Nro_filale di Filiali...non riesco a fare questo aggiornamento del vincolo sulla tabella Scorte...qualcuno mi aiuta a capirci qualcosa?E' importante...
Grazie
Saluti |
10 U L T I M E R I S P O S T E (in alto le più recenti) |
Mk178 |
Inserito il - 03/02/2009 : 17:31:12 Citazione: Messaggio inserito da Paki
Il problema della riesecuzione dello script io l'avevo risolto semplicemente mettendo "DROP TABLE IF EXISTS nome_tab" prima della creazione di nuove tabelle (lo fa anche la Lisi nei suoi esempi)!
La tabella viene eliminata e lo script eseguito ex novo!
Nel caso in cui con questo metodo non si riesca a risolvere nulla basta deletare tutto il DB e eseguire lo script :)
Si, infatti non è quello il problema. La creazione della tabella(o la non creazione se già c'è) o cmq la cancellazione preventiva della stessa, avevamo capito già come risolverlo. Il problema e ke con la ALTER TABLE ADD FOREIGN.... si và a modificare una tabella creata nello script della prof, dunque se si riesegue l proprio codice(senza rieseguire quelo della prof) dà errore inquanto la modifica già c'è. Naturalmente ho provato se esistesse una ALTER IF NOT EXIST...ma non và... forse bisognerebbe provare cn una sintassi del genere:
ALTER TABLE <nome_T1>
ADD IF NOT EXIST FOREIGN KEY <nome_ATT_di_T1> REFERENCES <nome_T2>(<nome_ATT_di_T2>)
Ma nn mi và di provarlo... ;P |
Paki |
Inserito il - 03/02/2009 : 09:27:15 Il problema della riesecuzione dello script io l'avevo risolto semplicemente mettendo "DROP TABLE IF EXISTS nome_tab" prima della creazione di nuove tabelle (lo fa anche la Lisi nei suoi esempi)!
La tabella viene eliminata e lo script eseguito ex novo!
Nel caso in cui con questo metodo non si riesca a risolvere nulla basta deletare tutto il DB e eseguire lo script :) |
Mk178 |
Inserito il - 02/02/2009 : 10:09:25 Citazione: Messaggio inserito da Virginio
Mk ti sono molto grato...adesso funziona e ho capito quale era l'errore...ti ringrazio!!!
de nada
In ogni caso, io ho sempre quel problema...(vedi mio primo post) Cioè... alla fine nn è un vero e proprio problema, inquanto basta rieseguire lo script della prof prima di ogni riesecuzione del proprio script ke funziona tutto...bhò oggi vedremo. In bocca al lupo... Ciao |
Virginio |
Inserito il - 02/02/2009 : 00:41:16 Mk ti sono molto grato...adesso funziona e ho capito quale era l'errore...ti ringrazio!!!
Saluti |
Mk178 |
Inserito il - 01/02/2009 : 19:59:11 Citazione: Messaggio inserito da Virginio
Ecco si ma io infatti ho riempito la tabella prima...non va lo stesso e la sintassi è esatta...se non chiedo troppo qualcuno farebbe un piccolo tentativo?Il link della traccia è su...il fatto è che vorrei togliermi il dubbio...perchè se son scemo almeno lo scopro,ma se non lo sono mi metto l'anima in pace eproseguo con ottimismo... Saluti
posto la parte iniziale (esercizio1 e 2)
# Esercizio 1)
CREATE TABLE Filiali(
Nro_filiale CHAR(1) PRIMARY KEY,
Nome_filiale CHAR(20),
Sede_filiale CHAR(20),
Nro_dipendenti INTEGER
) TYPE=INNODB;
# Esercizio 2)
INSERT INTO Filiali VALUES
('1','Henrys Downtown','16 Riverview',10),
('2','Henrys On The Hill','1289 Bedford',6),
('3','Henrys Brentwood','Brentwood Mall',15),
('4','Henrys Eastshore','Eastshore Mall',9);
ALTER TABLE Scorte
ADD FOREIGN KEY (Nro_filiale) REFERENCES Filiali(Nro_filiale); A me funziona, solo ke c'è il problema ke ho descritto precedentemente, nella riesecuzione... |
Virginio |
Inserito il - 01/02/2009 : 19:09:13 Ecco si ma io infatti ho riempito la tabella prima...non va lo stesso e la sintassi è esatta...se non chiedo troppo qualcuno farebbe un piccolo tentativo?Il link della traccia è su...il fatto è che vorrei togliermi il dubbio...perchè se son scemo almeno lo scopro,ma se non lo sono mi metto l'anima in pace eproseguo con ottimismo...
Saluti |
AlartZero |
Inserito il - 01/02/2009 : 16:07:12 be la tabella deve essere riempita e quindi l'ALTER funziona solo in quel caso (altrimenti punta a valori nulli).
come avete detto una prima soluzione è eseguire l'ALTER dopo gli INSERT (come feci io all'epoca) e funzionava, altri metodi non li ho provati |
Mk178 |
Inserito il - 01/02/2009 : 15:30:37 funziona se lo metti dopo le insert dell' esercizio successivo
oppure dobbiamo trovare qualke vincolo da applicare alla alter...io c sto sbattendo la testa da stamattina...è l'unica cosa ke nn sono riuscito a fare in maniera "pulita".
Inoltre, inserendolo dopo le insert funziona bene, ma se riesegui lo script, senza rieseguire quello relativo alla costruzione del database(quello fornito dalla prof), da problemi. Praticamente il riferimento è rimasto, dunque la alert non a senso.Stesso problema ke porta ad inserire la DROP table di Filiali a inizio script.(stesso discorso per la DROP VIEW)
Ho risolto questo problema inserendo il comando source come prima istruzione, dunque rendendo inutili anke le istruzioni di DROP iniziali. |
Virginio |
Inserito il - 01/02/2009 : 14:08:51 eh...il fatto è che non funziona...non so più come fare...
Saluti |
santdo |
Inserito il - 01/02/2009 : 10:15:35 dovresti eseguire il comando: alter table Scorte add foreign key (Nro_filiale)references Filiali; |