如何防止向多对多表添加重复项

wkyowqbh  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(274)

我有一张多对多的table UserId 以及 TaskId 当我向表中添加数据时,我可以多次添加相同的userid和taskid。
我使用以下查询添加数据:

Create table if not exists user_task(UserId INT, FOREIGN KEY (UserId)
REFERENCES USERS(id), TaskId INT, FOREIGN KEY (TaskId) REFERENCES TASKS(id));

如何防止在表中添加重复项?

+-----------------+
| UserId | TaskId |
+-----------------+
|   1     |   1   |
|   2     |   1   |
|   1     |   1   |
+---------+-------+

我知道我可以 DISTINCTSELECT 查询以获取没有重复项的数据,但不阻止将其添加到表中。

3duebb1j

3duebb1j1#

你可以用 Unique Index Constraint 基本上,它将检查重复项(在一列或一组列上),并在约束中断时停止插入/更新操作。
如果你对如何处理这个问题感兴趣,请查看手册

相关问题