Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110

    Foreign Key Con Phpmyadmin

    Ho creato la seguente tabella:

    Codice PHP:
    CREATE TABLE `categoria foto` (
    `
    idSMALLINTNOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `
    categoriaVARCHAR255 NOT NULL ,
    ENGINE innodb
    Fin qui tutto ok. Ne vorrei ora creare un'altra che abbia "categoria" come chiave esterna, ma al momento della creazione phpMyAdmin mi da sempre errore. Questo è il codice mysql:

    Codice PHP:
    CREATE TABLE `foto` (
    `
    idSMALLINTNOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `
    categoriaVARCHAR255 NOT NULL ,
    `
    titoloVARCHAR255 NOT NULL ,
    `
    sourceVARCHAR255 NOT NULL ,
    KEY `foto` (`categoria`) ,
    FOREIGN KEY `categoriaREFERENCES `categoria foto` (`categoria`) ON DELETE CASCADE ON UPDATE CASCADE,
    ENGINE innodb
    L'errore che ricevo è:

    #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 'REFERENCES `categoria foto` (`categoria`) ON DELETE CASCADE ON UPDATE CASCADE,
    ' at line 7

  2. #2
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    ma nn è la virgola finale che da fastidio?

    ....CASCADE,).....

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    Mi sa di no. Ho corretto e ho inserito:

    Codice PHP:
    CREATE TABLE `foto` (
    `
    idSMALLINTNOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `
    categoriaVARCHAR255 NOT NULL ,
    `
    titoloVARCHAR255 NOT NULL ,
    `
    sourceVARCHAR255 NOT NULL ,
    KEY `foto` ( `categoria` ) ,
    FOREIGN KEY `categoriaREFERENCES `categoria foto` ( `categoria` ) ON DELETE CASCADE ON UPDATE CASCADE
    ENGINE innodb
    Risultato:


    #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 'REFERENCES `categoria foto` ( `categoria` ) ON DELETE CASCADE ON UPDATE CASCADE
    ' at line 7

  4. #4
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    che versione hai di mysql?

    FOREIGN KEY va su mysql 5 mi pare

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    Mysql 5.0.19 per Mac Os X.

  6. #6
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    ok nn parlo + (le innodb nn le ho mai usate)

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    FOREIGN KEY nome_indice (colonna_indice) REFERENCES....

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    Perdona la mia ignoranza, ma potresti dirmi esattamente, in relazione al mio caso, come dovrebbe essere corretto il codice sql?

  9. #9
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    FOREIGN KEY `categoria` (categoria) REFERENCES...

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    Questo è quello che ho scritto:

    Codice PHP:
     CREATE TABLE `foto` (
    `
    idSMALLINTNOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `
    categoriaVARCHAR255 NOT NULL ,
    `
    titoloVARCHAR255 NOT NULL ,
    `
    sourceVARCHAR255 NOT NULL ,
    KEY `foto` ( `categoria` ) ,
    FOREIGN KEY `categoria` ( `categoria` ) REFERENCES `categoria foto` ( `categoria` ) ON DELETE CASCADE ON UPDATE CASCADE
    ENGINE innodb 
    Risultato:


    #1005 - Can't create table './nametable/foto.frm' (errno: 150)

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.