避免使用存储过程在表中插入重复记录

时间:2016-05-14 10:31:16

标签: sql oracle stored-procedures plsql duplicates

我希望避免在“注意”中插入重复记录。用于防止与重复创建相关的用例的表。我使用下面的代码。我可以将个性化设置从一个课程导入到另一个课程,但重复的数据也会出现在' notes'表。请指导如何避免在备注表中重复记录。

procedure copy_course (i_user_book_id in number,
                       i_course_user_id in number,
                       i_user_id in number,
                       i_from_course_id in number,
                       i_to_course_id in number)
is
insert into note (note_
    id, user_book_id, course_user_id, book_edition_id, book_id, role_type_id, page_id, book_page_number, xcoord, ycoord,
                width, height, share_across_courses, date_created, date_updated, created_by, updated_by, description, share_with_students,text)
    select  note_s.nextval, i_user_book_id, i_course_user_id, book_edition_id, book_id, n.role_type_id, page_id, book_page_number, xcoord, ycoord,
            width, height, share_across_courses, sysdate, sysdate, i_user_id, i_user_id, description, share_with_students,text
    from    note n,
            course_user cu
    where   n.course_user_id = cu.course_user_id
    and     cu.course_id = i_from_course_id;
 update  course
    set     copied_from_course_id = i_from_course_id,
            date_copied = sysdate
    where   course_id = i_to_course_id;
exception
    when others then
        --dbms_output.put_line (sqlerrm);
        null;
end copy_course;

0 个答案:

没有答案