Mysql 将数据插入到主键由两列组合而成的表中

Mysql 将数据插入到主键由两列组合而成的表中,mysql,sql,Mysql,Sql,我将这些列合并为主键 room_no, type 例如,当我插入新数据时,0001 01 然后我插入0001 02 这是办不到的。上面写着重复的主键。尽管我将两列定义为主键,但为什么它会重复。只是一个想法: room_no, type 您是否在它们上分别定义了索引 您是否将每个键单独定义为唯一键 这与compsite主键工作相同 您可以阅读本文:-您的表是如何定义的?例如,descripe tableroom_no(PK)char(4),type(PK)char(2)向我们显示create

我将这些列合并为主键

room_no, type
例如,当我插入新数据时,
0001 01

然后我插入
0001 02

这是办不到的。上面写着重复的主键。尽管我将两列定义为主键,但为什么它会重复。

只是一个想法:

room_no, type
  • 您是否在它们上分别定义了索引
  • 您是否将每个键单独定义为唯一键

这与compsite主键工作相同


您可以阅读本文:-

您的表是如何定义的?例如,
descripe table
room_no(PK)char(4),type(PK)char(2)向我们显示
create table
语句。我该怎么做?我使用phpmyadminCREATE TABLE ROOM(ROOM_no char(4),type char(2),PRIMARY KEY(ROOM_no,type));不知道,但我觉得这篇文章遗漏了一个非常重要的要点。它似乎忽略的一点是,即使您打算使用代理键作为主键而不是自然键,实体仍将自然键作为实体的一部分,除非它不是主键。例如,当他说在值已知之前不能输入记录时,即使是在代理键的情况下,在值已知之前也不能输入记录,因为我们不感兴趣的是使用键关联数据,而是实体持有的真实数据,即自然键