thefrog
30-06-2005, 17:25
stò preparando un esame su sql
devo creare queste 2 tabelle ma non ho capito bene come funzionano ste foreign key e infatti mi da quest'errore:
Error | 1005 | Can't create table '.\cddb\artist.frm' (errno: 150)
il codice è questo:
CREATE TABLE Artist
(artistid INT(10) UNSIGNED AUTO_INCREMENT NOT NULL,
name CHAR (255) NOT NULL,
index (artistid, name),
FOREIGN KEY (artistid, name) REFERENCES CD(artist,name), # ON UPDATE CASCADE,
countryid CHAR (3) NOT NULL,
website CHAR (255),
description TEXT,
PRIMARY KEY (artistid)) ENGINE=INNODB;
show warnings;
INSERT INTO Artist(artistid,name,countryid,website,description) VALUES (NULL, 'The Chemical Brothers', 'UK', 'http://www.thechemicalbrothers.com', 'blablablablablabla');
INSERT INTO Artist(artistid,name,countryid,website,description) VALUES (NULL, 'Moby', 'USA', 'http://www.moby.com', 'blabla');
INSERT INTO Artist(artistid,name,countryid,website,description) VALUES (NULL, 'Skin', 'UK', 'http://www.skinmusic.net', 'blablabla');
show warnings;
CREATE TABLE CD (
cdid int(10) UNSIGNED AUTO_INCREMENT NOT NULL,
artist int(10) UNSIGNED NOT NULL,
name CHAR (255) NOT NULL,
index (artist,name),
FOREIGN KEY (artist, name) REFERENCES Artist(artistid, name),
title char(255) NOT NULL,
label char(255) NOT NULL,
released date NOT NULL,
PRIMARY KEY (cdid)) ENGINE=INNODB;
INSERT INTO CD (artist,name,title,label,released) VALUES (NULL, 'The Chemical Brothers', 'Push the button', 'EMI', '2005-01-24');
qualcuno mi spiega cosa sbaglio con ste foreign key? su mysql.com non sono riuscito a capirlo :|
grazie mille
devo creare queste 2 tabelle ma non ho capito bene come funzionano ste foreign key e infatti mi da quest'errore:
Error | 1005 | Can't create table '.\cddb\artist.frm' (errno: 150)
il codice è questo:
CREATE TABLE Artist
(artistid INT(10) UNSIGNED AUTO_INCREMENT NOT NULL,
name CHAR (255) NOT NULL,
index (artistid, name),
FOREIGN KEY (artistid, name) REFERENCES CD(artist,name), # ON UPDATE CASCADE,
countryid CHAR (3) NOT NULL,
website CHAR (255),
description TEXT,
PRIMARY KEY (artistid)) ENGINE=INNODB;
show warnings;
INSERT INTO Artist(artistid,name,countryid,website,description) VALUES (NULL, 'The Chemical Brothers', 'UK', 'http://www.thechemicalbrothers.com', 'blablablablablabla');
INSERT INTO Artist(artistid,name,countryid,website,description) VALUES (NULL, 'Moby', 'USA', 'http://www.moby.com', 'blabla');
INSERT INTO Artist(artistid,name,countryid,website,description) VALUES (NULL, 'Skin', 'UK', 'http://www.skinmusic.net', 'blablabla');
show warnings;
CREATE TABLE CD (
cdid int(10) UNSIGNED AUTO_INCREMENT NOT NULL,
artist int(10) UNSIGNED NOT NULL,
name CHAR (255) NOT NULL,
index (artist,name),
FOREIGN KEY (artist, name) REFERENCES Artist(artistid, name),
title char(255) NOT NULL,
label char(255) NOT NULL,
released date NOT NULL,
PRIMARY KEY (cdid)) ENGINE=INNODB;
INSERT INTO CD (artist,name,title,label,released) VALUES (NULL, 'The Chemical Brothers', 'Push the button', 'EMI', '2005-01-24');
qualcuno mi spiega cosa sbaglio con ste foreign key? su mysql.com non sono riuscito a capirlo :|
grazie mille