सबसे पहले आपके कोड में कई त्रुटियां हैं जो इसे परीक्षण करने के लिए थोड़ा बोझिल बनाती हैं। दूसरा, सुनिश्चित करें कि आप दोनों तालिकाओं में एक ही वर्णसेट का उपयोग करते हैं, मैंने message_map को utf8 में बदल दिया है:
DROP TABLE message_map;
CREATE TABLE message_map (
message_from varchar(15) NOT NULL,
message_id varchar(15) NOT NULL,
message_to varchar(15) NOT NULL,
message_status bit(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE message_map
ADD PRIMARY KEY (message_from,message_id,message_to),
ADD KEY FK_ij6tystusydqijqp8lgoigo1c (message_id);
ALTER TABLE message_map
ADD CONSTRAINT FK_MSG_MAP_USER
FOREIGN KEY (message_from)
REFERENCES user (USER_ID)
ON DELETE CASCADE
ON UPDATE CASCADE,
ADD CONSTRAINT FK_MSG_MAP_USER_TO
FOREIGN KEY (message_to)
REFERENCES user (USER_ID)
ON DELETE CASCADE
ON UPDATE CASCADE;
मैंने विदेशी कुंजी परिभाषा से डेमो हटा दिया है।