Table enrollments
-----------------

id      classId     userId
--      -------     ------
1         1           1
--      -------     ------

在此状态之后:要拒绝每次再次插入{classId=1userId=1}
如果用户插入相同的classIduserId,则应拒绝插入。
我已经试过了:
INSERT INTO enrollments(classId, userId)
    VALUES('{$classId}', '{$userId}')
    WHERE
    NOT EXISTS(SELECT NULL FROM
                enrollments WHERE
                    classId='{$classId}' AND userId='{$userId}')

最佳答案

classIduserId组合为唯一的,因此如果前面表中存在,则不能插入相同的classIduserId

ALTER TABLE enrollments
ADD CONSTRAINT UC_Person UNIQUE (classId,userId);

10-08 05:05