Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: chiave esterna

  1. #1
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649

    chiave esterna

    ciao a tutti,ho due tabelle soggetti e libri.in un campo, codice_libro_posseduto della tabella soggetti devo inserire una chiave esterna che punta al campo codicelibri della tabella libri.
    qual'è la sintassi per l'istruzione FOREIGN KEY in sql?

  2. #2
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649
    nel senso che farei così ma non funziona:
    codice:
    ALTER TABLE soggetti ADD COLUMN 'codice_libro_posseduto'
    FOREIGN KEY ('codice_libro_posseduto')
      REFERENCES libri (codicelibri)

  3. #3
    Come da manuale:

    http://dev.mysql.com/doc/refman/5.0/...nstraints.html

    InnoDB allows you to add a new foreign key constraint to a table by using ALTER TABLE:

    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]

  4. #4
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649
    una spiegazione un pò meno teorica?

  5. #5
    Un "non funziona" meno generico?

  6. #6
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649
    si scusa pictor non mi è molto chiara l'istruzione sql FOREIGN KEY
    che parametri deve ricevere,e perchè il codice scritto a monte del post è errato.

  7. #7
    Originariamente inviato da moonba
    si scusa pictor non mi è molto chiara l'istruzione sql FOREIGN KEY
    che parametri deve ricevere,e perchè il codice scritto a monte del post è errato.
    Prova con due query alter table e sopratutto senza mettere le apici ai nomi colonna.

    ALTER TABLE soggetti ADD COLUMN codice_libro_posseduto+caratteristiche della nuova colonna

    ALTER TABLE soggetti ADD FOREIGN KEY (codice_libro_posseduto)
    REFERENCES libri (codicelibri)

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

  8. #8
    Scrivi l'errore che ti dà quando esegui la query almeno c'è qualche indizio.

  9. #9
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649
    grazie piero.mac e pictor

  10. #10
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649
    se inserisco questo codice in phpmyadmin :
    codice:
    ALTER TABLE soggetti ADD FOREIGN KEY (codice_libro_posseduto)
    REFERENCES libri (codicelibri)
    mi da quest'errore:
    #1005 - Can't create table '.\provephp\#sql-aa8_42.frm' (errno: 150)

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.