Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    [MySQL]Problema con chiavi esterne FOREIGN KEY

    Salve ragazzi, qualcuno può aiutarmi a risolvere l'errore detta tabella giocatori?

    codice:
    TABELLA SQUADRE:
    
    query SQL:
    
    CREATE TABLE `squadre` (
      `IDsquadra` int(10) unsigned NOT NULL auto_increment,
      `squadra` varchar(25) NOT NULL default '',
      PRIMARY KEY  (`IDsquadra`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
    
    
    TABELLA GIOCATORI:
    
    query SQL:
    
    CREATE TABLE `giocatori` (
    
    `IDgiocatore` int( 10 ) unsigned NOT NULL AUTO_INCREMENT ,
    `IDsquadra` int( 11 ) NOT NULL default '0',
    `giocatore` varchar( 35 ) NOT NULL default '',
    PRIMARY KEY ( `IDgiocatore` ) ,
    FOREIGN KEY ( `IDsquadra` ) REFERENCES squadre( `IDsquadra` ) ) 
    ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT =1
    
    Messaggio di errore:
    
    #1005 - Impossibile creare la tabella '.\fantapeggiori\giocatori2.frm' (errno: 150)
    Se notate, la tabella squadre è di tipo MyISAM mentre nella tabella giocatori è InnoDB, in quanto ha una FOREIGN KEY

    Grazie anticipatamente.
    Con i sogni possiamo conoscere il futuro...

  2. #2

    Re: [MySQL]Problema con chiavi esterne FOREIGN KEY

    Originariamente inviato da gaten

    Se notate, la tabella squadre è di tipo MyISAM mentre nella tabella giocatori è InnoDB, in quanto ha una FOREIGN KEY

    Grazie anticipatamente.
    guarda che ti sei risposto da solo. le tabelle devono essere tutte e due InnoDB


    edit....

    CREATE TABLE `giocatori` (

    oppure giocatori2 ????

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

  3. #3
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Mi piacerebbe che sia solo questo, ma l'errore resta invariato.
    Con i sogni possiamo conoscere il futuro...

  4. #4
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    La tabella si chiama "giocatori"
    Con i sogni possiamo conoscere il futuro...

  5. #5
    Originariamente inviato da gaten
    La tabella si chiama "giocatori"
    e questo:

    #1005 - Impossibile creare la tabella '.\fantapeggiori\giocatori2.frm' (errno: 150)

    da dove arriverebbe allora???

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

  6. #6
    Originariamente inviato da gaten
    Mi piacerebbe che sia solo questo, ma l'errore resta invariato.
    ho riletto con attenzione le query. A parte l'incongruenza della segnalazione di errore nel nome della tabella, hai una differenza che ti impedisce la creazione della foreign key.

    Il tipo dei campi interessati e' numerico ma questi devono anche avere le stesse caratteristiche.

    `IDsquadra` int(10) unsigned NOT NULL auto_increment,

    `IDsquadra` int( 11 ) NOT NULL default '0',


    la differenza e' che int(10) unsigned e' diverso da int(11) signed (per default)
    percio' prova a mettere:

    `IDsquadra` int( 10 ) unsigned NOT NULL default '0',

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

  7. #7
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Il problema e che và solo con versioni > = MySQL 5, infatti in remoto non mi dà alcun problema.
    Inoltre come mai ho un errore con questa tabella, mi sembra strano perchè ho agito nella stessa maniera per la creazione delle altre tabelle.

    CREATE TABLE `formazioni` (
    `IDformazione` int(10) unsigned NOT NULL auto_increment,
    `IDsquadra` int(11) NOT NULL default '0',
    `formazione` text NOT NULL,
    `IDmatch` int(11) NOT NULL default '0',
    PRIMARY KEY (`IDformazione`),
    FOREIGN KEY ( `IDsquadra` ) REFERENCES squadre( `IDsquadra` ),
    FOREIGN KEY ( `IDmatch` ) REFERENCES match( `IDmatch` )
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1

    nella tabella vi è un campo di tipo TEXT, non so se sia questo il problema.
    Premetto che tutte le tabelle del database sono di tipo "InnoDB"

    Grazie.
    Con i sogni possiamo conoscere il futuro...

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.