【问题标题】:MySQL Composite primary key uniquenessMySQL 复合主键唯一性
【发布时间】:2023-04-06 14:10:01
【问题描述】:

如何在 mySQL 中制作复合主键。在表 1 中,我需要将 id1、id2 设置为复合主键。我使用了这个查询。但它使每个都成为主键。它检查每个条目的重复项

ALTER TABLE `table1`
  DROP PRIMARY KEY,
   ADD PRIMARY KEY(
     `id1`,
     `id2`);

当我插入两行时

insert "a","b" 
insert "a","c"

1062 - 键“pk_sentiments”的重复条目“1408181771009”

但是

insert "a","c" 
insert "b","c"

工作正常。我无法理解这种行为。如何解决?

【问题讨论】:

  • 您假设 ("a", "b") 被插入为 (id1, id2),但事实并非如此,因为错误报告的值不同。你的表结构是什么?
  • 它只是两个字符串。在我的情况下 id1-id2 需要是主键,但是当我插入相同的 id1 但不同的 id2 时,它会显示此错误
  • 您的alter 语句创建了一个复合键。
  • 这个“pk_sentiments”是什么,我在那个名字中没有任何外键关系。
  • 为什么唯一键不适合你?

标签: mysql sql database


【解决方案1】:

也许是这样的:

ALTER TABLE `table1` ADD UNIQUE KEY `id1_id2` (`id1`, `id2`);

【讨论】:

    猜你喜欢
    • 2018-07-29
    • 2019-03-12
    • 1970-01-01
    • 2011-01-17
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2020-02-02
    相关资源
    最近更新 更多