Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774

    [mysql] - alter table contente più operazioni

    salve,
    una curiosità: avrei bisogno di inserire delle chiavi esterne nel mio database.
    sicoome per ogni tabella esiste più di una chiave esterna ho usato un codice di questo tipo:

    codice:
    ALTER TABLE appuntamenti ADD (
      CONSTRAINT fk_app_annuncio FOREIGN KEY (id_annuncio) REFERENCES annunci(id) ON DELETE CASCADE ON UPDATE CASCADE,
      CONSTRAINT fk_app_utente FOREIGN KEY (id_utente) REFERENCES utenti(id) ON DELETE CASCADE ON UPDATE CASCADE,
      CONSTRAINT fk_app_agente FOREIGN KEY (id_agente) REFERENCES utenti(id) ON DELETE CASCADE ON UPDATE CASCADE
    )
    in pratica ho riunito più constraint in un unico alter table.
    il problema è che mi da errore di sintassi e sembra che la cosa sia proprio legata al fatto di inserire più constraint con un unico alter table.
    e possibile che si debba fare un alter table per ogni constraint? (ho usato questa stessa sintassi con oracle e funziona benissimo).
    o magari si deve usare un altra sintassi (il manuale non ne parla).

    ps: mysql version=4.1, tables engine=InnoDB.

    grazie mille
    citrus

  2. #2
    Credo si debba ripetere l'azione per ogni riga....
    codice:
    ALTER TABLE appuntamenti 
    ADD CONSTRAINT fk_app_annuncio FOREIGN ..... ,
    ADD CONSTRAINT fk_app_annuncio FOREIGN ..... .. ,
    ecc....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774
    niente come non detto, il solito stupido errore....
    avevo dimenticato il ";" alla fine

    riporto il codice corretto (anche se di poco )

    codice:
    ALTER TABLE annunci ADD(
      CONSTRAINT fk_ann_venditore FOREIGN KEY (id_venditore) REFERENCES utenti(id) ON DELETE CASCADE ON UPDATE CASCADE,
      CONSTRAINT fk_ann_agente FOREIGN KEY (id_agente) REFERENCES utenti(id) ON DELETE SET NULL ON UPDATE CASCADE
    );

    grazie
    citrus

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.