Newsgroup: it.comp.os.linux.development
Titolo: domanda su sql / 2

Allora, ho adottato la soluzione di luk nel mio programma, ho spulciato
la guia di mysql e sembra funzionare. Solo che mi rimane qualche dubbio.
Nella query:
CREATE TABLE PROVA_ELENCO_RELAZIONI_2004 (id_incaricato MEDIUMINT,
id_obbligo MEDIUMINT, FOREIGN KEY (id_incaricato) REFERENCES
PROVA_ELENCO_INCARICATI_2004(id) ON DELETE CASCADE, INDEX (id_obbligo) ,
INDEX (id_incaricato) , FOREIGN KEY (id_obbligo) REFERENCES
PROVA_ELENCO_OBBLIGHI_2004(id)) TYPE=INNODB
cosa fa la direttiva INDEX ? Ho visto che senza di quello non crea la
tabella....
Seconda cosa. Io ho messo ON DELETE CASCADE, sperando che se uno cancella
un incaricato vengano eliminate anche tutte le righe che lo riguardano nel
db. E' così?
Terza cosa: per mysql servono le noodb giusto per avere le foreign keys?
Grazie delle risposte. 
PS: non conoscete un libro che spieghi bene l'sql? Non mi interessa un
libro su un database in particolare, mi interesserebbe qualcosa che spiega
la teoria che sta alla base.

 che spiega la teoria che sta alla base.
Domani ho proprio un esame su db, ti posso consigliare il libro su
cui ho studiato la parte di teoria: 'Basi di dati' di Paolo Atzeni,
Stefano Ceri edizione McGraw-Hill, isbn 88-386-6030-1 e 88-386-6008-5
(è in due volumi)
-----BEGIN PGP SIGNATURE-----
Version: PGP 8.0.3
iQA/AwUBQN8SCDWXBaxQfmEFEQJRVQCg3A3TVcmZtsSJQdldOB13+LQrptEAn1Uo
lH3xE+cm8yn0YVIQ0gEXpS5U
=rry0
-----END PGP SIGNATURE-----

 (è in due volumi)
mi sa che l'ho già visto (dai ragazzi che hanno fatto il corso di basi di
dati. :-) )

 la teoria che sta alla base.
Prendi la documentazione di Interbase. Se poi ti capita recupera dei testi
di esercitazioni di qualche universita'. Se hai soldi da buttare (e ti vuoi
addentrare nel discorso DB, non solo SQL) il libro atzeni-ceri-deantonellis.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail** 
-<! Le donne e le salsicce sono la stessa cosa: pelle fuori e maiale dentro !>-

Ottavio Campana wrote:
CREATE TABLE PROVA_ELENCO_RELAZIONI_2004 (
    id_incaricato MEDIUMINT,
    id_obbligo MEDIUMINT,
    FOREIGN KEY (id_incaricato) REFERENCES
PROVA_ELENCO_INCARICATI_2004(id) ON DELETE CASCADE,
    INDEX (id_obbligo) ,
    INDEX (id_incaricato) ,
    FOREIGN KEY (id_obbligo) REFERENCES PROVA_ELENCO_OBBLIGHI_2004(id)
) TYPE=INNODB
| Il Sun, 27 Jun 2004 18:30:27 +0000, luk ha scritto:
[cut]
| da quello che c'č scritto nella documentazione da quando usa le innodb
| sě.
Effettivamente le tabelle myISAM non supportano chiavi esterne ne lock e
transazioni, mentre le InnoDB si.
La direttiva INDEX crea un indice sul campo specificato permettendo di
velocizzare le query.
Io ti consiglierei di specificare le chiavi su cui lavori (id_*) di tipo
NOT NULL e mettere una primary key
Credo che con la specifica del INDEX su di un campo viene impostato
direttamente il fatto che il campo sia NOT NULL e che siano di tipo
UNIQUE (per impedire presenza di duplicati: credo che nelle tabelle
referenziate siano delle chiavi primarie i campi id_obbligo e
id_incaricato no?)
Magari sto solo dicendo tronzate, io ho sempre utilizzato myISAM ma non
InnoDB ... spero di esserti stato d'aiuto .. Ciao!
-- 
..::[ Panz ]::..
-----------------------
per rispondere riscrivi in numeri la mia eMail!