同时给3列添加Unique
Add Unique to 3 columns at the same time
我有一个名为 social_accounts
的 table 来存储 OAuth 登录的数据
id
user_id
provider
provider_id
我想让 user_id,provider,provider_id
UNIQUE 但我希望所有 3 列同时都是唯一的
这意味着 ID 为 x
的用户可以有一个 provider_id b
和提供者 google
例如但是这一行没有重复但是使用 x
可以有另一个以提供商 faceook
为例的行
provider
列在这里似乎是多余的。你应该有一个单独的 table 和 provider_id
和 provider
要在多个列上设置 UNIQUE
索引,请尝试以下操作:
ALTER TABLE `social_accounts` ADD UNIQUE `unique_index`(`user_id`, `provider_id`);
但是,如果您想坚持在 table 中使用 provider
的方法,请使用此方法:
ALTER TABLE `social_accounts`
ADD UNIQUE `unique_index`(`user_id`, `provider_id`, `provider`);
另请注意,unique_index
是您的索引的名称,您可以随意命名。
我有一个名为 social_accounts
的 table 来存储 OAuth 登录的数据
id
user_id
provider
provider_id
我想让 user_id,provider,provider_id
UNIQUE 但我希望所有 3 列同时都是唯一的
这意味着 ID 为 x
的用户可以有一个 provider_id b
和提供者 google
例如但是这一行没有重复但是使用 x
可以有另一个以提供商 faceook
为例的行
provider
列在这里似乎是多余的。你应该有一个单独的 table 和 provider_id
和 provider
要在多个列上设置 UNIQUE
索引,请尝试以下操作:
ALTER TABLE `social_accounts` ADD UNIQUE `unique_index`(`user_id`, `provider_id`);
但是,如果您想坚持在 table 中使用 provider
的方法,请使用此方法:
ALTER TABLE `social_accounts`
ADD UNIQUE `unique_index`(`user_id`, `provider_id`, `provider`);
另请注意,unique_index
是您的索引的名称,您可以随意命名。