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

    Foreign key altervista tabella innodb

    Buongiorno, sto cercando di utilizzare MySQL su altervista ma cercando di definire una tabella con chiave esterna ho il seguente messaggio di errore. Qualcuno mi aiuta? Grazie!
    CREATE TABLE PROIEZIONE(
    IDPRO INT( 5 ) NOT NULL ,
    INCASSO FLOAT NOT NULL ,
    SALA VARCHAR( 20 ) NOT NULL ,
    DATAPRO DATE NOT NULL ,
    IDFILM INT( 5 ) NOT NULL ,
    INDEX IDFILMKEY( IDFILM ) ,
    PRIMARY KEY ( IDPRO ) FOREIGN KEY ( IDFILM ) REFERENCES FILM3( IDFILM ) ON DELETE CASCADE ON UPDATE CASCADE

    )TYPE=INNODBMessaggio di MySQL: http://www182.altervista.org/phpmyad...img/b_help.png
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOREIGN KEY(IDFILM) REFERENCES FILM3(IDFILM)
    ON DELETE CASCADE
    ON UPDATE CASCA' at line 9

  2. #2
    prova :

    CREATETABLEPROIEZIONE(
    IDPRO INT( 5 ) NOT NULL ,
    INCASSO FLOAT NOT NULL ,
    SALA VARCHAR( 20 ) NOT NULL ,
    DATAPRO DATE NOT NULL ,
    IDFILM INT( 5 ) NOT NULL ,
    INDEX IDFILMKEY( IDFILM ) ,
    PRIMARY KEY ( IDPRO ),
    FOREIGN KEY ( IDFILM ) REFERENCES FILM3( IDFILM ) ON DELETE CASCADE ON UPDATE CASCADE

    )TYPE=INNODB
    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
    Grazie! Funziona, ma vuoi dire che il problema era solamente il fatto che on delete ecc era su una riga diversa?

  4. #4
    Quote Originariamente inviata da scia2058 Visualizza il messaggio
    Grazie! Funziona, ma vuoi dire che il problema era solamente il fatto che on delete ecc era su una riga diversa?
    no, il problema era che mancava la virgola dopo la primary key
    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

  5. #5
    Grazie!
    Ora però ho quest'altro errore nella definizione della tabelal Recita ... è tutta una questione di virgole? Ho provato a metterle e toglierle ma c'è sempre un errore! Mi aiuti? Grazie!
    Errore

    query SQL:
    CREATE TABLE RECITA(
    IDFILM INT( 5 ) NOT NULL ,
    IDATTORE INT( 5 ) NOT NULL ,
    RUOLO VARCHAR( 15 ) PRIMARY KEY ( IDFILM, IDATTORE ) ,
    INDEX IDFILMKEY( IDFILM ) ,
    FOREIGN KEY ( IDFILM ) REFERENCES FILM3( IDFILM ) ON DELETE CASCADE ON UPDATE CASCADE ,
    INDEX IDATTOREKEY( IDATTORE ) ,
    FOREIGN KEY ( IDATTORE ) REFERENCES ATTORE2( IDATTORE ) ON DELETE CASCADE ON UPDATE CASCADE
    ) TYPE = INNODB Messaggio di MySQL: http://www182.altervista.org/phpmyad...img/b_help.png
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(IDFILM, IDATTORE),
    INDEX IDFILMKEY(IDFILM),
    FOREIGN KEY(IDFILM) REFERENCES FI' at line 5

  6. #6
    Quote Originariamente inviata da scia2058 Visualizza il messaggio
    Grazie!
    Ora però ho quest'altro errore nella definizione della tabelal Recita ... è tutta una questione di virgole? Ho provato a metterle e toglierle ma c'è sempre un errore! Mi aiuti? Grazie!
    Errore

    query SQL:
    CREATE TABLE RECITA(
    IDFILM INT( 5 ) NOT NULL ,
    IDATTORE INT( 5 ) NOT NULL ,
    RUOLO VARCHAR( 15 ) PRIMARY KEY ( IDFILM, IDATTORE ) ,
    INDEX IDFILMKEY( IDFILM ) ,
    FOREIGN KEY ( IDFILM ) REFERENCES FILM3( IDFILM ) ON DELETE CASCADE ON UPDATE CASCADE ,
    INDEX IDATTOREKEY( IDATTORE ) ,
    FOREIGN KEY ( IDATTORE ) REFERENCES ATTORE2( IDATTORE ) ON DELETE CASCADE ON UPDATE CASCADE
    ) TYPE = INNODB Messaggio di MySQL: http://www182.altervista.org/phpmyad...img/b_help.png
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(IDFILM, IDATTORE),
    INDEX IDFILMKEY(IDFILM),
    FOREIGN KEY(IDFILM) REFERENCES FI' at line 5
    Invece di continuare a correggerti gli errori forse e' meglio se ti chiedo se sai qual'e la sintassi per creare tabelle

    la sintassi prevede che dopo ogni campo metti una virgola tranne l'ultima

    Ad esempio :
    create table pippo(
    id int,
    nome varchar(45),
    primary key(id))

    confronta questa definizione con quello che hai scritto tu e troverai presto l'errore
    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

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.