【发布时间】:2016-07-23 11:56:06
【问题描述】:
我有表调用reviewbook 表。用户需要为一个 bookid 分配 3 个不同的评论成员。它们可以是任何reviewmemberid,只要它们是一个bookid 的3 个不同的。下面是我想要的结果。现在,我能想到的是在查询中进行多次插入,但是,reviewmemberid 可以重复,这不是我想要的。我听说触发器可以是这样做的一种方式,但我不知道如何应用它。有人可以指导我吗,或者是否有更好的方法。
Reviewbook
-reviewid
-reviewmemberid
-bookid
reviewid reviewmemberid bookid
1 2 1
2 3 1
3 5 1
4 1 2
5 2 2
6 5 2
7 1 3
8 2 3
9 4 3
//My current insert code, but this insert code can insert duplicate reviewmemberid.
INSERT ALL INTO REVIEW (REVIEWID,REVIEWMEMBERID,BOOKID)VALUES
(?.?,?) INTO REVIEW
(REVIEWID,REVIEWMEMBERID,BOOKID)VALUES
(?.?,?) INTO REVIEW
(REVIEWID,REVIEWMEMBERID,BOOKID)VALUES
(?.?,?) SELECT * FROM DUAL;
【问题讨论】:
-
您只是想确保
(REVIEWMEMBERID,BOOKID)的每个组合只出现一次,还是比这更复杂? -
是的,所以 3 个不同的 reviewmemberids 到一个 book id,这个 bookid 就完成了。用户将继续分配下一个 bookid。
-
在
(REVIEWMEMBERID,BOOKID)上放置一个唯一索引就足够了吗? -
你能指导我吗?
-
您的问题中没有 PL/SQL。为什么你认为你需要一个存储过程?
标签: oracle plsql triggers insert