Visualizzazione dei risultati da 1 a 6 su 6

Discussione: foreign keys

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    18

    foreign keys

    Salve a tutti,
    premetto che ho iniziato da poco con php e avrei una domanda che sicuramente avranno fatto milioni di persone poichè documentandomi anche su altri forum ho visto parecchio materiale. Malgrado ciò non sono riuscit a risolvere il problema in questione.

    Sto usando phpmyadmin
    ho 2 tabelle:
    CREATE TABLE `areas` (
    `ID_area` int(2) unsigned NOT NULL auto_increment,
    `name_area` varchar(20) default NULL,
    PRIMARY KEY (`ID_area`)
    ) TYPE=InnoDB AUTO_INCREMENT=1 ;

    CREATE TABLE `subareas` (
    `ID_subarea` int(2) unsigned NOT NULL auto_increment,
    `name_subarea` varchar(20) default NULL,
    `p_area` int(2) default NULL,
    PRIMARY KEY (`ID_subarea`)

    ) TYPE=InnoDB AUTO_INCREMENT=1 ;

    in un secondo momento ho aggiunto un indice alla seconda tabella

    ALTER TABLE `subareas` ADD INDEX ( `p_area` )

    per poi assegnare al puntatore p_area la foreign key

    ALTER TABLE subareas
    ADD FOREIGN KEY (p_area)
    REFERENCES innotest (ID_area)
    ON DELETE CASCADE ON UPDATE CASCADE;

    A questo punto mi arriva il mess di errore

    Messaggio di MySQL: Documentazione
    #1005 - Impossibile creare la tabella '.\firward\#sql-aac_ed.frm' (errno: 150)

    (premetto che prima di inserire l'index e la FK ho riempito la tabella areas con alcuni records)

    scusate se è una domanda stupida..ma non so cosa fare.
    grazie in anicipo per i consigli

  2. #2
    codice:
    ALTER TABLE subareas
    ADD FOREIGN KEY (p_area)
    REFERENCES innotest (ID_area)
    ON DELETE CASCADE ON UPDATE CASCADE;
    tu qui fai riferimento alla tabella "innotest"....non alla tabella "areas"...
    Administrator of NAMDesign.Net

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    18
    si hai ragione..errore di battitura..infatti non funziona neanche se metto la tabella giusta

    ALTER TABLE subareas
    ADD FOREIGN KEY (p_area)
    REFERENCES areas (ID_area)
    ON DELETE CASCADE ON UPDATE CASCADE;

  4. #4
    i due dati devono avere la stessa dichiarazione...prova a rendere anche p_areas un dato di tipo unsigned
    Administrator of NAMDesign.Net

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    18
    Originariamente inviato da ^AciD.m+
    si hai ragione..errore di battitura..infatti non funziona neanche se metto la tabella giusta

    ALTER TABLE subareas
    ADD FOREIGN KEY (p_area)
    REFERENCES areas (ID_area)
    ON DELETE CASCADE ON UPDATE CASCADE;
    grazie mille credo che ora sia tutto ok!!! grazie!!! non ci sarei mai arrivata

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    180
    ...leggendo il post ho risolto anche io un problema analogo.
    ok ho creato la FK.
    Ora dal query browser, per esempio, come interrogo il db per verificare che colleghi correttamente i campi?

    grazie

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.