Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql errno:150 „Ограничението за чужд ключ е формирано неправилно“ - MariaDB

Първо, във вашия код има редица грешки, което го прави малко тромав за тестване. Второ, уверете се, че използвате същия набор от знаци и в двете таблици, промених 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;

Премахнах демонстрацията от дефиницията на външния ключ.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. свързване на MySQL сървър към NetBeans

  2. Импортирайте данни от Excel в MySql с Node JS

  3. mysql създава нов ред, вместо да актуализира съществуващия

  4. Просто, но тежко приложение, което консумира много ресурси. Как да оптимизираме?

  5. Как да намерите всички идентификатори на деца рекурсивно?