sql >> Database >  >> RDS >> Mysql

mysql errno:150 "Foreign key constraint is onjuist gevormd" - MariaDB

Ten eerste zijn er een aantal fouten in uw code die het een beetje omslachtig maken om te testen. Ten tweede, zorg ervoor dat je in beide tabellen dezelfde tekenset gebruikt, ik heb message_map gewijzigd in 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;

Ik heb de demo verwijderd uit de definitie van de refererende sleutel.




  1. Forreach-luscontainer voor gegevensstroomtaak

  2. COMMIT OF conn.setAutoCommit(true)

  3. Hoe transaction_timestamp() werkt in PostgreSQL

  4. Oracle.ManagedDataAccess lost alias niet op in verbindingsreeks