Foreign key constraint is incorrectly formed?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ich bin auch kein SQL Profi, aber der Syntax und Fehlermeldung nach zu urteilen, sind die Datentypen der foreigned Felder nicht gleich. Du möchtest ja praktisch auf einen Fremdschlüssel verweisen, dieser hat aber nunmal ein anderes Format, als die Spalte, die du jetzt erzeugen möchtest.

Kontrollier einfach mal, ob die Fremdschlüsselzelle die gleichen Datentypen annimmt, wie deine Tabelle hier.

Woher ich das weiß:Studium / Ausbildung

philipweiss177 
Beitragsersteller
 01.06.2024, 00:40

Hat geklappt! Danke dir!

1

Evtl. mal mit "SHOW ENGINE InnoDB STATUS" hinterher nachschauen, was ihm nicht passt.

  • Datentypen der Spalten in beiden Tabellen gleich ?
  • Gibt es einen Index in der referenzierten Tabelle auf diese Spalte ?

wenn ich das folgende in einer testdb werfe, läuft das:

CREATE TABLE messages (
  message_id INT AUTO_INCREMENT KEY
);

CREATE TABLE users (
  user_id INT AUTO_INCREMENT KEY
);

CREATE TABLE message_status (
status_id INT PRIMARY KEY AUTO_INCREMENT,
message_id INT,
user_id INT,
status VARCHAR(20),
FOREIGN KEY (message_id) REFERENCES messages(message_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);

show tables;