首页 > 解决方案 > 防止重复行 SQL

问题描述

让我在当前情况下解释一下:

我有一个tokens包含两列的表:nametoken.

例如,可以为名为“John”的用户分配“更新”令牌。

但是,我不想让两行包含“John”、“updated”。但是,可能有一行包含“Mathew”、“updated”,因此不能使用主键。

是否可以在不执行两个语句的情况下做到这一点?先感谢您。

标签: javamysqlsqlmariadb

解决方案


您正在查看的是使名称和令牌都唯一,您可以添加一行:

unique(name, token);  

或者通过编写以下内容使表的主键成为对(名称,令牌):

primary key(name, token);  

通过这样做,您将只接受名称和令牌的 1 个唯一行。


推荐阅读