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

    [MySql] Errore con Foreign key

    codice:
    create table Articoli(
    codice char(25) NOT NULL,
    taglia int NOT NULL,
    tipo char(20),
    percentualeIva int,
    prezzoSenzaIva float,
    costoAcquisto float,
    quantita int,
    colore char(15),
    descrizione char(25),
    codiceFornitore char(25),
    PRIMARY KEY(codice,taglia),
    FOREIGN KEY(codiceFornitore)REFERENCES Fornitori(partitaIva));
    
    create table Carrello(
    codiceArticolo char(25) NOT NULL,
    taglia int NOT NULL,
    tipo char(20),
    percentualeIva int,
    prezzoSenzaIva float,
    prezzoIvato float,
    quantita int,
    colore char(15),
    descrizione char(25),
    codiceFornitore char(25),
    PRIMARY KEY(codiceArticolo,taglia),
    FOREIGN KEY(codiceArticolo)REFERENCES Articoli(codice),
    FOREIGN KEY(taglia)REFERENCES Articoli(taglia));
    Come mai mi da questo errore?
    ERROR 1005 (HY000): Can't create table '.\dbname\carrello.frm' (errno: 150)

    se tolgo l'ultmo FOREIGN KEY mi crea la tabella , ma poi...

    help

  2. #2
    please help

  3. #3
    Scusa ho sbagliato ^^

  4. #4

  5. #5
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    probabilmente perché nella tabella articolo ci sono delle ambiguità per il campo taglia. Le foreign key si riferiscono nelle tabelle esterne fondamentalmente a delle primary key, proprio per non creare ambiguità nei valori. In altre parole dovresti integrare le ultime due foreign key in una sola, anche perché visto che compongono entrambe una chiave primaria nella tabella articolo, in una foreign key non possono essere divise

  6. #6
    infatti...
    codice:
    create table Articoli(
    codice char(25) NOT NULL,
    taglia int NOT NULL,
    tipo char(20),
    percentualeIva int,
    prezzoSenzaIva float,
    costoAcquisto float,
    quantita int,
    colore char(15),
    descrizione char(25),
    codiceFornitore char(25),
    PRIMARY KEY(codice,taglia),
    FOREIGN KEY(codiceFornitore)REFERENCES Fornitori(partitaIva));
    
    create table Carrello(
    codiceArticolo char(25) NOT NULL,
    taglia int NOT NULL,
    tipo char(20),
    percentualeIva int,
    prezzoSenzaIva float,
    prezzoIvato float,
    quantita int,
    colore char(15),
    descrizione char(25),
    codiceFornitore char(25),
    PRIMARY KEY(codiceArticolo,taglia),
    FOREIGN KEY(codiceArticolo,taglia)REFERENCES Articoli(codice,taglia));
    così non mi dà alcun problema!
    sono un pò arruginito con l'SQL !!!
    grazie

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.