0

meine Tabellenstruktur:Nicht in der Lage Einschränkungen in mysql hinzufügen

CREATE TABLE USER 
(
id   INTEGER, 
name   VARCHAR(50), 
gender  VARCHAR(2), 
dateofbirth DATE, 
song_id  INTEGER, 
ratings  INTEGER 
); 



CREATE TABLE song 
(
    id    INTEGER, 
    name   VARCHAR(50), 
    lengthofsong INTEGER, 
    album_id  INTEGER 
); 

meine Zwänge Hinzufügen Abfrage:

ALTER TABLE USER ADD CONSTRAINT fk_song_id FOREIGN KEY(song_id) REFERENCES song(id); 

Fehler ich erhalte:

ist ein Fehler aufgetreten bei der Ausführung der SQL-Befehl: ALTER TABLE USER HINZUFÜGEN CONSTRAINT fk_song_id FOREIGN KEY (song_id) REFERENCES Song (ID)

'Test # SQL-4f7_33':

Ausführungszeit: 0,1 s

1 Anweisung fehlgeschlagen

Tabelle kann nicht (150 errno) erstellen.

Antwort

0

Versuchen einen Primärschlüssels Hinzufügen der Fehler 150 Zusammenhang mit der Tatsache ist, dass Sie nicht einen richtigen Primärschlüssel für Constraints haben

CREATE TABLE USER 
(
    id   INTEGER NOT NULL AUTO_INCREMENT, 
    name   VARCHAR(50), 
    gender  VARCHAR(2), 
    dateofbirth DATE, 
    song_id  INTEGER, 
    ratings  INTEGER, 
    PRIMARY KEY (`id`), 
); 



CREATE TABLE song 
(
id    INTEGER INTEGER NOT NULL AUTO_INCREMENT, 
name   VARCHAR(50), 
lengthofsong INTEGER, 
album_id  INTEGER 
PRIMARY KEY (`id`), 
); 
0

Sie können einen Fremdschlüssel auf einfaches Feld erstellen die muss ein primäre sein Schlüssel: so die ID des Songs so Primärschlüssel sein muss

drop table user; 
CREATE TABLE USER 
(
id   int, 
name   VARCHAR(50), 
gender  VARCHAR(2), 
dateofbirth DATE, 
song_id  int, 
ratings  int 
); 

drop table song; 
CREATE TABLE song 
(
    id    int primary key , 
    name   VARCHAR(50), 
    lengthofsong int, 
    album_id  int 
); 


ALTER TABLE USER ADD CONSTRAINT fk_song_id FOREIGN KEY(song_id) REFERENCES song(id); 

ich bin spät dran denke, einen Fremdschlüssel Verweis darauf erstellen kann ich ^^