Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql errno:150 "Kendala kunci asing salah dibentuk" - MariaDB

Pertama, ada sejumlah kesalahan dalam kode Anda yang membuatnya agak rumit untuk diuji. Kedua, pastikan Anda menggunakan charset yang sama di kedua tabel, saya mengubah message_map menjadi 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;

Saya menghapus demo dari definisi kunci asing.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Koneksi Database MySQL Dengan Visual Studio 2013 Preview

  2. PHP/MySQL:Sorot hasil kueri SUARA SEPERTI

  3. Query MySQL Rekursif dengan innoDB relasional

  4. MySql - Buat Tabel Jika Tidak Ada Lagi Potong?

  5. Jumlah kolom tidak cocok dengan jumlah nilai pada baris 1 JAVA mysql