sql >> Database teknologi >  >> RDS >> Mysql

Fremmednøgle med flere kolonner i MySQL?

Noget som dette burde gøre det:

CREATE TABLE MyReferencingTable AS (
   [COLUMN DEFINITIONS]
   refcol1 INT NOT NULL,
   rofcol2 INT NOT NULL,
   CONSTRAINT fk_mrt_ot FOREIGN KEY (refcol1, refcol2)
                        REFERENCES OtherTable(col1, col2)
) ENGINE=InnoDB;
  • MySQL kræver, at fremmednøgler indekseres, derfor indekset på de refererende kolonner
  • Brug af begrænsningssyntaksen giver dig mulighed for at navngive en begrænsning, hvilket gør det nemmere at ændre og slette på et senere tidspunkt, hvis det er nødvendigt.
  • InnoDB håndhæver fremmednøgler, det gør MyISAM ikke. (Syntaksen analyseres, men ignoreres)


  1. Udviklerværktøjer til direkte adgang til databaser

  2. Sådan gemmer du kun tid; ikke dato og tid?

  3. Sådan fungerer LOAD_FILE()-funktionen i MySQL

  4. Kalder lagret procedure med returværdi