Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Errore MYSQL. Non capisco da cosa possa essere causato!

    Ciao Ragazzi,

    in un progettino che sto facendo ora ho presenti 3 tabelle:

    la prima tabella contiene un identificatore (CF) e due attributi.

    la terza tabella contiene un identificatore (ID) altri attributi e una chiave esterna (non identificatore).

    La seconda tabella invece contiene due identificatori: la prima è una chiave esterna di CF, relazionata con integrità referenziale grazie ad una FOREIGN KEY con la prima tabella; la seconda è un'altra chiave esterna di ID relazionata anch'essa con la terza tabella.

    quando inserisco la prima tupla (esempio [1, AAABBB99B55E172H]) va tutto a buon fine, la seconda tupla però ( esempio [1, BBBCCC12C66E123H]) mi causa il seguente errore:

    "Cannot add or update a child row: a foreign key constraint fails (`stagisti/partecipazioni`, CONSTRAINT `FK_partecipazioni_2` FOREIGN KEY (`IDstage`) REFERENCES `stages` (`ID`))
    org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:549)"

    Aiutatemi, vi prego! Sono bloccato e non capisco da cosa possa derivare!!

  2. #2
    quelle tuple su che tabella la inserisci?

    che struttura ha tale tabella?
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Prima tabella:

    `stagisti`.`stagisti` ( `CF` varchar(16) NOT NULL default '', `nome` varchar(30) NOT NULL default '', `cognome` varchar(45) NOT NULL default '', `classe` int(10) unsigned NOT NULL default '0', `sezione` varchar(10) NOT NULL default '', `comune` varchar(30) NOT NULL default '', `residenza` varchar(45) NOT NULL default '', `telefono` varchar(11) NOT NULL default '', `mail` varchar(45) NOT NULL default '', `CAP` varchar(5) NOT NULL default '', `telefono2` varchar(11) NOT NULL default '', PRIMARY KEY (`CF`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    Seconda Tabella:

    `stagisti`.`stages` ( `ID` int(10) unsigned NOT NULL default '0', `dataInizio` date NOT NULL default '0000-00-00', `dataFine` date NOT NULL default '0000-00-00', `PIVAAz` varchar(11) NOT NULL default '', PRIMARY KEY (`ID`), KEY `FK_stages_1` (`PIVAAz`), CONSTRAINT `FK_stages_1` FOREIGN KEY (`PIVAAz`) REFERENCES `aziende` (`PIVA`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    Terza Tabella (quella relazionata alle altre due):

    `stagisti`.`partecipazioni` (
    `IDstage` int(10) unsigned NOT NULL default '0',
    `CFstagista` varchar(16) NOT NULL default '',
    PRIMARY KEY (`IDstage`,`CFstagista`),
    KEY `FK_partecipazioni_3` (`CFstagista`),
    CONSTRAINT `FK_partecipazioni_2` FOREIGN KEY (`IDstage`) REFERENCES `stages` (`ID`),
    CONSTRAINT `FK_partecipazioni_3` FOREIGN KEY (`CFstagista`) REFERENCES `stagisti` (`CF`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    e la tupla di inserimento verrà inserita nella TERZA tabella!

  4. #4
    Beh l'errore è abbastanza chiaro, visto che ti dice anche quale FK stai violando. Tu gli hai detto (giustamente) che per ogni partecipazione deve esistere uno stagista corrispondente, ma evidentemente non c'è.
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  5. #5
    Originariamente inviato da in the web
    Beh l'errore è abbastanza chiaro, visto che ti dice anche quale FK stai violando. Tu gli hai detto (giustamente) che per ogni partecipazione deve esistere uno stagista corrispondente, ma evidentemente non c'è.
    Purtroppo tutto sto ragionamento l'ho fatto anche io... Ora ti posto le popolazioni delle tre tabelle:

    Prima tabella:

    'AAABBB96RBBC33AN', 'ABABA', 'BABA', 3, 'A', 'bin', 'biun', '0331/033103', 'ciao@ciao.org', '20112', ''

    'STRMNL98R45F123H', 'Manuela', 'Stronza', 1, 'CL', 'Sedriano', 'Via le mani dal culo', '0331/553738', 'ciao@ciao.it', '20012', '0332/560654'

    (DATI E RIFERIMENTI PURAMENTE CREATI E CASUALI)

    Terza TABELLA

    1, '2013-06-15', '2013-06-22', 'A512B712C09'
    2, '2013-06-15', '2013-06-22', 'ABCDE12345c'
    3, '2013-06-22', '2013-06-23', 'A512B712C09'

    Seconda tabella (tabella partecipazioni)

    ID | CF

    2, 'STRMNL98R45F123H'

    Se inserisco (1, 'STRMNL98R45F123H') mi esce:

    "Cannot add or update a child row: a foreign key constraint fails (`stagisti/partecipazioni`, CONSTRAINT `FK_partecipazioni_2` FOREIGN KEY (`CFstagista`) REFERENCES `stagisti` (`CF`))"

    Sono disperato, vi giuro! Mi sembra tutto corretto!!

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.