gpt4 book ai didi

mysql - 无法使用 Innodb 在表中定义非唯一索引

转载 作者:行者123 更新时间:2023-11-29 13:58:25 27 4
gpt4 key购买 nike

我有一个包含 4 列的表 - id(自动递增)、tournament_id、userid、cash。

userid 和tournament_id 可能有重复的条目,但tournament_id 和userid 的组合始终是唯一的。

所以根据我的要求我需要有两组索引。

  1. 用户ID
  2. tournament_id,现金

但我无法创建包含非唯一条目的索引,因为它一直给我以下错误:

  "Failed to create index : SQL create unique index `test_index` on `table_name` 
(`tournament_id`) failed : Duplicate entry"

最佳答案

您正在寻找的称为复合主键。

PRIMARY KEY(user_id, tournament_id)

它将确保 user_idtournament_id 的组合是唯一的。

您的表定义应该类似于。

CREATE TABLE user_tournament
{
user_id INT,
tournament_id INT,
cash DECIMAL(5,2), -- should cash be in this table?

PRIMARY KEY(user_id, tournament_id),
FOREIGN KEY(user_id) REFERENCES user(id),
FOREIGN KEY(tournament_id) REFERENCES tournament(id)
} ENGINE=InnoDB;

关于mysql - 无法使用 Innodb 在表中定义非唯一索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15447911/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com