ciao ragazzi, mi sto cimentando con mySQl per un progetto universitario, ma ho alcuni problemi! mi posto gli errori e il codice, se qualcuno può darmi una mano, gli sono molto grato, ci sbatto la testa da due giorni!
[code2=sql]DROP TABLE IF EXISTS Impresa;
DROP TABLE IF EXISTS Ordini;
DROP TABLE IF EXISTS Fatture;
DROP TABLE IF EXISTS Impiegati;
DROP TABLE IF EXISTS Dirigenti;
DROP TABLE IF EXISTS Operai;
DROP TABLE IF EXISTS Materiali;
DROP TABLE IF EXISTS Abitazioni;
DROP TABLE IF EXISTS Singole;
DROP TABLE IF EXISTS Appartamenti;
DROP TABLE IF EXISTS Fornitori;
DROP TABLE IF EXISTS Clienti;
DROP TABLE IF EXISTS Mutui;
CREATE TABLE Impresa(
Nome Varchar(20) NOT NULL,
Sede varchar(30) NOT NULL ,
SitoWeb Varchar(20) NOT NULL,
PartitaIva Varchar(20) NOT NULL,
PRIMARY KEY(Nome, Sede))
ENGINE=innoDB;
CREATE TABLE Ordini(
Intestatario Varchar(20),
NumeroOrdine Varchar(10),
DataOrdine date NOT NULL,
Importo integer,
Fornitore Varchar(20) NOT NULL,
Note Varchar(255),
FOREIGN KEY (Intestatario) REFERENCES Impresa(Nome),
PRIMARY KEY( NumeroOrdine, Importo))
ENGINE=innoDB;
CREATE TABLE Fatture(
NumeroFattura integer,
NumeroOrdine Varchar(10),
DataEmissione date NOT NULL,
Importo integer,
FOREIGN KEY (NumeroOrdine) REFERENCES Ordini(NumeroOrdine),
FOREIGN KEY (Importo) REFERENCES Ordini(Importo),
PRIMARY KEY(NumeroFattura))
ENGINE=innoDB;
CREATE TABLE Impiegati(
Nome Varchar(10) NOT NULL,
Cognome Varchar(10) NOT NULL,
Indirizzo Varchar(20) NOT NULL,
Telefono integer NOT NULL,
CodiceFiscale Varchar(20),
Matricola integer,
PRIMARY KEY(Nome, Cognome, Indirizzo, Telefono, Matricola))
ENGINE=innoDB;
CREATE TABLE Dirigenti(
Matricola integer ,
Ruolo Varchar(10) NOT NULL,
NumeroVendite integer,
FOREIGN KEY ( Matricola) REFERENCES Impiegati(Matricola))
ENGINE=innoDB;
CREATE TABLE Operai(
Matricola integer,
DataInizio date NOT NULL,
Specializzazione Varchar(25) NOT NULL,
FOREIGN KEY ( Matricola) REFERENCES Impiegati(Matricola))
ENGINE=innoDB;
CREATE TABLE Materiali(
NomeMateriale Varchar(20) NOT NULL,
Quantità integer DEFAULT 0,
Note Varchar(255),
PRIMARY KEY( NomeMateriale, Quantità))
ENGINE=innoDB;
CREATE TABLE Abitazioni(
Metratura integer NOT NULL,
NomeFabbricato Varchar(20),
Indirizzo Varchar(20) NOT NULL,
costo integer NOT NULL,
Stato enum('venduta', 'invenduta'),
NumVani integer NOT NULL,
NumAccessori integer NOT NULL,
Garage enum('si', 'no'),
Giardino enum('si', 'no'),
Tipo enum('Villa','Bifamiliare','quadrifamiliare','aSchiera'),
Cucine integer,
Piani integer,
NumInterno integer NOT NULL,
NumeroAPP integer,
Ascensore enum('si', 'no'),
Note Varchar(255),
PRIMARY KEY(Metratura, Indirizzo, Costo, NumVani, NumAccessori))
ENGINE=innoDB;
CREATE TABLE Fornitori(
Nome Varchar(20) NOT NULL,
Indirizzo Varchar(20) NOT NULL,
Telefono Varchar(15) NOT NULL,
DataUltimoOrdine
date,
PRIMARY KEY (Nome, Indirizzo, Telefono))
ENGINE=innoDB;
CREATE TABLE Clienti(
Nome Varchar(20) NOT NULL,
Cognome Varchar(20) NOT NULL,
indirizzo Varchar(20) NOT NULL,
CodiceFiscale Varchar(20),
Pagamento Varchar(50) NOT NULL,
Mutuo enum('si', 'no'),
PRIMARY KEY(Nome, Cognome, Indirizzo, Pagamento))
ENGINE=innoDB;
CREATE TABLE Mutui(
NomeBeneficiario Varchar(20) NOT NULL,
CognomeBeneficiario Varchar(20) NOT NULL,
DataRichiesta date,
DataConcessione date,
Importo Varchar(10) NOT NULL,
FOREIGN KEY (NomeBeneficiario) REFERENCES Clienti(Nome),
FOREIGN KEY (CognomeBeneficiario) REFERENCES Clienti(Cognome),
PRIMARY KEY( NomeBeneficiario, CognomeBeneficiario, Importo))
ENGINE=innoDB;[/code2]
gli errori del terminale sono i seguenti:
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
Query OK, 0 rows affected (0.02 sec)
Query OK, 0 rows affected (0.13 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
Query OK, 0 rows affected (0.03 sec)
Query OK, 0 rows affected (0.02 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
Query OK, 0 rows affected (0.03 sec)
Query OK, 0 rows affected (0.03 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
ERROR 1050 (42S01): Table 'Impresa' already exists
ERROR 1050 (42S01): Table 'Ordini' already exists
ERROR 1005 (HY000): Can't create table 'progetto.Fatture' (errno: 150)
Query OK, 0 rows affected (0.07 sec)
ERROR 1005 (HY000): Can't create table 'progetto.Dirigenti' (errno: 150)
ERROR 1005 (HY000): Can't create table 'progetto.Operai' (errno: 150)
Query OK, 0 rows affected (0.07 sec)
Query OK, 0 rows affected (0.07 sec)
Query OK, 0 rows affected (0.07 sec)
Query OK, 0 rows affected (0.08 sec)
ERROR 1005 (HY000): Can't create table 'progetto.Mutui' (errno: 150)
grazie mille!
problemi vari con MYSQL
- jackynet92
- Moderatore Globale

- Messaggi: 13413
- Iscrizione: sabato 3 settembre 2011, 1:41
- Desktop: Mate
- Distribuzione: Ubuntu 16.04 64bit
- Sesso: Maschile
- Località: Torino
Re: problemi vari con MYSQL
Per postare correttamente i risultati del terminale sul forum basta:
- 1. selezionare il testo del terminale
2. tasto destro copia (in alternativa premere Ctrl + maiusc + C)
3. incollare sul forum negli appropriati code, ovvero selezionare il testo e cliccare su Codice
Codice: Seleziona tutto
[color=#FF0000] qui inserisci il testo [/color][ /code]
[code]in modo da ottenere qualcosa di simileI limiti esistono solo perché noi possiamo superarli.
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti