|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2003
Messaggi: 3532
|
problema SQL
allora, devo fare un coso in sql abbastanza semplice, il codice è questo:
Codice:
drop database if exists db3647299; create database if not exists db3647299; use db3647299; DROP TABLE IF EXISTS Rapprensentanti; CREATE TABLE if not exists Rappresentanti( CodR CHAR(2) PRIMARY KEY, cognome CHAR(10), nome CHAR(8), via CHAR(15), citta CHAR(15), prov CHAR(2), cap CHAR(5), TotProvv DECIMAL(5,2), PerProvv DECIMAL(5,2) ) TYPE=INNODB; DROP TABLE IF EXISTS Clienti; CREATE TABLE if not exists Clienti( CodC CHAR(3) PRIMARY KEY, cognome CHAR(10), nome CHAR(8), via CHAR(15), citta CHAR(15), prov CHAR(2), cap CHAR(5), saldo DECIMAL(5,2), fido DECIMAL(5,2), CodR CHAR(2) NOT NULL, INDEX RInd (CodR), FOREIGN KEY (CodR) REFERENCES Rappresentanti(CodR) ) TYPE=INNODB; DROP TABLE IF EXISTS Ordini; CREATE TABLE if not exists Ordini( NumOrdine CHAR(6) PRIMARY KEY, Data DATE, CodC CHAR(3), INDEX CliInd (CodC), FOREIGN KEY (CodC) REFERENCES Clienti(CodC) ON DELETE SET NULL ) TYPE=INNODB; DROP TABLE IF EXISTS Articoli; CREATE TABLE if not exists Articoli( NumArt CHAR(4) PRIMARY KEY, descrizione CHAR(20), giacenza INT, categoria CHAR(2), magazzino CHAR(1), PrzUnitario DECIMAL(5,2) ); DROP TABLE IF EXISTS DettagliOrdini; CREATE TABLE if not exists DettagliOrdini( NumOrdine CHAR(6) NOT NULL, NumArt CHAR(4) NOT NULL, PRIMARY KEY(NumOrdine, NumArt), INDEX Ord_ind(NumOrdine), FOREIGN KEY(NumOrdine) REFERENCES Ordini(NumOrdine), INDEX Art_ind(NumArt), FOREIGN KEY(NumArt) REFERENCES Articoli(NumArt), QtaOrd DECIMAL(3,0), Prezzo DECIMAL(6,2) ) TYPE=INNODB; Codice:
ERROR 1005: Can't create table './db3647299/DettagliOrdini.frm' (errno: 150) |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2001
Città: milano, qualunque birreria
Messaggi: 4208
|
mi sembra un errore sulle foreign key...
in oracle, una fk richiede una primary key o uno unique index su cui appoggiarsi, e non mi sembra che ci siano su tutte le tabelle... non so in mysql ma credo che sia lo stesso...
__________________
Save water: drink beer.
This message has been created with 100% recycled electrons Un rutto vale più di mille parole. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Feb 2003
Messaggi: 3532
|
Quote:
cosa credi che dovrei cambiare? |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2003
Messaggi: 3532
|
risolto....
mi ero scordato TYPE = INNODB nella tabella Articoli si può chiudere |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2001
Città: milano, qualunque birreria
Messaggi: 4208
|
direi la sintassi...
prova a scrivere le pk tutte così: Codice:
PRIMARY KEY(NumOrdine, NumArt) comunque prova a guardare QUI
__________________
Save water: drink beer.
This message has been created with 100% recycled electrons Un rutto vale più di mille parole. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2001
Città: milano, qualunque birreria
Messaggi: 4208
|
come non detto!
complimenti
__________________
Save water: drink beer.
This message has been created with 100% recycled electrons Un rutto vale più di mille parole. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:11.



















