Mysql 如何创建包含两个主键和两个外键的表?

Mysql 如何创建包含两个主键和两个外键的表?,mysql,foreign-keys,primary-key,composite-primary-key,Mysql,Foreign Keys,Primary Key,Composite Primary Key,Mysql抱怨语法有问题 期望的结果:让表“机器部件”使用“机器ID”和“部件ID”作为两个主键(都是外键)。类似这样的内容- create table Machine ( Machine_ID int primary key, Machine_Name varchar(30) Machine_Title varchar(30) ) create table Part ( Part_ID int primary key, Part_Name varchar(30), Part_Des

Mysql抱怨语法有问题

期望的结果:让表“机器部件”使用“机器ID”和“部件ID”作为两个主键(都是外键)。类似这样的内容-

create table Machine
(
 Machine_ID int primary key,
 Machine_Name varchar(30)
 Machine_Title varchar(30)
)
create table Part
(
 Part_ID int primary key,
 Part_Name varchar(30),
 Part_Description varchar(30)
)

//How do I make this table below?
create table Machine-Part
(
  Machine_ID int foreign key references (Machine.Machine_ID),
  Part_ID int foreign key references (Part.Part_ID)
  Factory_Note varchar(30);
) 
您可以在这些页面上找到所有信息:


如果单独声明约束(表级),则更有意义

CREATE TABLE Machine(
  Machine_ID INT PRIMARY KEY,
  Machine_Name VARCHAR(30),
  Machine_Title VARCHAR(30)
)
ENGINE = INNODB;

CREATE TABLE Part(
  Part_ID INT PRIMARY KEY,
  Part_Name VARCHAR(30),
  Part_Description VARCHAR(30)
)
ENGINE = INNODB;

create table `Machine-Part`(
  Machine_ID int,
  Part_ID int,
  Factory_Note varchar(30),
  CONSTRAINT fk_Machine_ID FOREIGN KEY (Machine_ID) REFERENCES Machine(Machine_ID),
  CONSTRAINT fk_Part_ID FOREIGN KEY (Part_ID) REFERENCES Part(Part_ID)
)
ENGINE = INNODB;

链接表几乎总是需要一个反向索引

ENGINE=INNODB是什么;do/mean?目前只有INNODB引擎支持外键。我明确指定了这个值。使用这些查询查看MySQL服务器的默认存储引擎:显示“default_storage_engine”之类的变量;或显示“table_type”之类的变量;
create table Machine-Part
(
  Machine_ID int NOT NULL ,
  Part_ID int NOT NULL ,
  Factory_Note varchar(30) NULL,

  PRIMARY KEY (Machine_ID, Part_ID),
  UNIQUE INDEX (Part_ID, Machine_ID),
  foreign key (Machine_ID) references (Machine.Machine_ID),
  foreign key (Part_ID) references (Part.Part_ID)
)