【问题标题】:Update table to make primary key out of two foreign keys更新表以使用两个外键生成主键
【发布时间】:2022-08-17 20:52:09
【问题描述】:

有一个表 sample_tag 已经存在 1000 个条目。

它由两个外键sample_idtag_id 组成。

但是,数据库允许创建重复的 sample_id/tag_id 记录。

在不创建新表的情况下,是否有一条 SQL 语句来更新 sample_tag 表,使两个外键一起作为其主键?

数据库是使用 phpMyAdmin 的 MySQL

  • 您使用的是哪个数据库?甲骨文、SQL Server、MySQL、...?
  • 对两列进行唯一约束,语法因 rdms 而异
  • 感谢您的回复。它是 MySQL

标签: sql database


【解决方案1】:

主要挑战是如何解决重复项。如果已经有重复的键,那么您需要将它们作为一个单独的步骤来解决(删除重复的,或者合并任何其他您认为合适的列)。

要检查重复项,请尝试:

SELECT sample_id, tag_id, COUNT( * )
FROM sample_tag
GROUP BY sample_id, tag_id;

如果没有,那么您可以继续删除任何现有的主键,然后创建一个新主键。

【讨论】:

  • 值得庆幸的是,在添加许多重复项之前就发现了这个问题。它们已被手动删除。没有重复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多