PDA

View Full Version : [SQL] Problema creazione tabella-Errore1005


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)"

MarcoGG
09-05-2009, 11:19
Al di là dell'errore, è una buona idea una Pk data dall'unione di nome e cognome dell'autore ? :stordita:
Non semplificherebbe drasticamente avere una Pk id_Autore ( numerica ) e relativa FK nella tabella dei libri ?

ShadowMan
09-05-2009, 11:27
Al di là dell'errore, è una buona idea una Pk data dall'unione di nome e cognome dell'autore ? :stordita:
Non semplificherebbe drasticamente avere una Pk id_Autore ( numerica ) e relativa FK nella tabella dei libri ?

Uhm, se ho capito bene quello che hai detto penso di si ma questo era quello che mi chiedeva di fare l'esercizio :sofico: :fagiano:

ShadowMan
09-05-2009, 11:35
Ho letto la soluzione e creato le tabelle senza problemi...ora vorrei capire perché non utilizza ENGINE=InnoDB quando nella lezione sulle chiavi esterne c'è scritto che bisogna utilizzarlo :stordita: :mbe: