Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003

    [sql] Cannot add a child row

    Ho un problema con le foreign keys

    Ho una tabella assCalendario così fatta:
    codice:
    idcalendario | idaccount
    1            | 1
    2            | 1
    3            | 2
    3            | 4
    idcalendario ed idaccount dovrebbero avere come genitori gli id (rispettivamente) della tabella calendario e account.
    Sono riuscito a mettere in relazione assCalendario.idcalendario con calendario.id.
    Ma quando provo (con phpmyadmin o mysql-front) a fare una relazione tra ass.Calendario.idaccount e accounts.id mi da il seguente errore:
    "Errore query SQL # 1216:
    Cannot add or update a child row: a foreign key constraint fails"

    A cosa potrebbe essere dovuto? Ah tutti gli elementi in gioco sono settati come primary key delle rispettive tabelle.

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    posta i dump delle tabelle
    think simple think ringo

  3. #3
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    codice:
    -- Struttura della tabella `accounts`
    
    CREATE TABLE accounts (
      id int(11) NOT NULL auto_increment,
      nome varchar(32) NOT NULL default '',
      `password` varchar(32) NOT NULL default '',
      azienda int(11) NOT NULL default '0',
      accesso tinyint(2) NOT NULL default '0',
      lastmove int(11) NOT NULL default '0',
      PRIMARY KEY  (id,azienda)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- --------------------------------------------------------
    
    -- Struttura della tabella `asscalendario`
    
    CREATE TABLE asscalendario (
      calendario int(11) NOT NULL default '0',
      account int(11) NOT NULL default '0',
      confermato tinyint(1) NOT NULL default '0',
      PRIMARY KEY  (calendario,account)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- --------------------------------------------------------
    
    -- Struttura della tabella `calendario`
    
    CREATE TABLE calendario (
      id int(11) NOT NULL auto_increment,
      `data` date NOT NULL default '0000-00-00',
      oraInizio time NOT NULL default '00:00:00',
      oraFine time NOT NULL default '00:00:00',
      attivita int(11) NOT NULL default '0',
      titolo varchar(250) NOT NULL default '',
      note text NOT NULL,
      richiedente int(11) NOT NULL default '0',
      democratico tinyint(1) NOT NULL default '0',
      PRIMARY KEY  (id,attivita,richiedente)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- Limiti per la tabella `asscalendario`
    
    ALTER TABLE `asscalendario`
      ADD CONSTRAINT asscalendario_ibfk_1 FOREIGN KEY (calendario) REFERENCES calendario (id) ON DELETE CASCADE;
    Se provo a relazonare asscalendario.account con accounts.id mi dà l'errore di cui sopra.

  4. #4
    codice:
    alter table asscalendario
    ADD FOREIGN KEY (calendario) 
    REFERENCES calendario (id) 
    ON DELETE CASCADE;
    ciao bello...


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

  5. #5
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Quella query per la relazione me l'ha creata phpmyadmin.
    Dici che devo eliminarla e rifarla a manina?

    Comunque grazie mille

  6. #6
    [supersaibal]Originariamente inviato da VaLvOnAuTa
    Quella query per la relazione me l'ha creata phpmyadmin.
    Dici che devo eliminarla e rifarla a manina?

    Comunque grazie mille [/supersaibal]
    il riferimento lo mette da solo in caso di default. Se devi rimuovere la relazione dovrai prima identificare il referer o con show create table oppure con show table status....


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

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.