ShadowMan
09-05-2009, 10:47
Sono alle prime armi con SQL e relativo MySQL :D
Devo creare due tabelle.
La prima creata senza problemi
CREATE TABLE Autore(
Nome CHARACTER(20),
Cognome CHARACTER(20),
DataNascita DATE,
Nazionalita CHARACTER(30),
PRIMARY KEY (Nome, Cognome))
ENGINE=InnoDB;
La seconda
CREATE TABLE Libro(
Titolo CHARACTER(30),
NomeAutore CHARACTER(20),
CognAutore CHARACTER(20),
Lingue CHARACTER(3),
PRIMARY KEY (Titolo),
FOREIGN KEY NomeAutore REFERENCES Autore(Nome) ON UPDATE SET NULL ON DELETE CASCADE,
FOREIGN KEY CognAutore REFERENCES Autore(Cognome) ON UPDATE SET NULL ON DELETE CASCADE)
ENGINE=InnoDB;
Ed ottengo "ERROR 1005 Can't create table test.libro (errno:150)"
Devo creare due tabelle.
La prima creata senza problemi
CREATE TABLE Autore(
Nome CHARACTER(20),
Cognome CHARACTER(20),
DataNascita DATE,
Nazionalita CHARACTER(30),
PRIMARY KEY (Nome, Cognome))
ENGINE=InnoDB;
La seconda
CREATE TABLE Libro(
Titolo CHARACTER(30),
NomeAutore CHARACTER(20),
CognAutore CHARACTER(20),
Lingue CHARACTER(3),
PRIMARY KEY (Titolo),
FOREIGN KEY NomeAutore REFERENCES Autore(Nome) ON UPDATE SET NULL ON DELETE CASCADE,
FOREIGN KEY CognAutore REFERENCES Autore(Cognome) ON UPDATE SET NULL ON DELETE CASCADE)
ENGINE=InnoDB;
Ed ottengo "ERROR 1005 Can't create table test.libro (errno:150)"