我正在尝试使用 MySQL 在将记录插入表时执行检查,以查看一对值是否已在另一条记录中使用。
场景是这样的:
我有一个名为 WORKLOG 的表,其中包含以下列:
LOGNO INTEGER UNSIGNED NOT NULL PRIMARY KEY,
HOURNO MEDIUMINT UNSIGNED NOT NULL,
EMPID INTEGER UNSIGNED NOT NULL,
JOBID INTEGER UNSIGNED NOT NULL,
DESCRIPTION TEXT,
问题是多条记录不能有相同的 HOURNO 和 JOBID 对,因为这意味着同一时间的工作在同一工作上完成了两次。每项工作都有自己的小时数,因此小时数不可能是唯一的。我基本上是在尝试实现一个唯一的对,有点像复合主键。
所以如果我在表中有以下行
(0001,1,0034,2938,"some text")
(0002,2,0034,2938,"some text")
(0003,1,0045,2939,"some text")
(0004,3,0034,2938,"some text")
(0005,2,0056,2939,"some text")
(0006,4,0034,2938,"some text")
(0007,3,0083,2939,"some text")
(0008,4,0083,2939,"some text")
我不应该添加以下内容,因为 HOURNO 和 JOBID 对已经存在于另一行(即行 0006)中:
(0009,4,0056,2938,"some text")
有没有我可以做的检查?