MySQL:更改表以添加带外键的复合键

标签 mysql sql database-design

我有以下两张表

Table: User    
Columns: id, name, age

Table: Task
Columns:  id, task_name, user_id, friend_id

user_idUser 表中的外键。

我需要编写一个查询来更改在 user_idfriend_id 之间创建复合索引的表。

下面的命令是正确的方法吗:

ALTER TABLE Task ADD CONSTRAINT compsite_key PRIMARY KEY (user_id, friend_id)

目标是确保 user_idfriend_id 记录不存在重复。

最佳答案

您可以使用create index创建复合索引:

create index idx_task_userid_friendid on task(user_id, friend_id);

您还可以使用 create table/alter table 以及 keyindex 关键字来执行此操作。但这是创建索引的更典型的方式。

关于MySQL:更改表以添加带外键的复合键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41388691/

相关文章:

mysql - XAMPP + Wordpress - 更新后无法启动

php - 如何在 php mysql 查询中搜索数字?

database-design - 外键取决于列内容——如何保证完整性?

mysql - 如何在 mysql 表中强制类别与产品的关系

php - 如何在我的表中搜索表单变量并在未找到时添加到表中,但如果找到则按用户指定的数量增加值?

sql - Django 查询 Postgres 返回错误列

sql - 根据变量/查询结果选择列的优雅方法?

mysql - SQL 查询,其中所有 A 的 B 中的以下列都必须相等?

php - 针对 PHP 数据检索进行优化的 MySQL 数据库设计

mysql - 查找*没有*标志的所有行(SET 数据类型)