【问题标题】:Prevent concurrent inserts in sql防止sql中的并发插入
【发布时间】:2015-06-02 10:49:06
【问题描述】:

有一个表 tblStudents,其中包含有关 student_courses 的信息。根据课程类型和位置类型,每个新学生都会被分配一个课程编号 (varchar)。 例如:

 CourseNo              Course       Location    StudentID   Date
NET_MUMBAI_001      Net     Mumbai       100        2/6/2015
NET_MUMBAI_002      Net     Mumbai       101        2/6/2015
NET_DELHI_001       Net     Delhi        100        2/6/2015
JAVA_DELHI_001      Java        Delhi        101        2/6/2015
JAVA_DELHI_002      Java        Delhi        102        2/6/2015
JAVA_DELHI_003      Java        Delhi        122        2/6/2015
JAVA_DELHI_004      Java        Delhi        112        2/6/2015

当新学生注册时,它会检查该课程和地点组合的最后使用的最高编号(在本例中为 Mumbai 和 Net 的 002),并生成一个新的课程编号。 (NET_MUMBAI_003)。当有并发插入时,生成的数量是重复的。如何预防?

【问题讨论】:

标签: sql sql-server concurrency insert-statement


【解决方案1】:

感谢您的意见。

同步使用以下两件事来实现相同的目标。 1.应用唯一索引 2. 使用隔离级别作为可序列化的更新锁

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 2013-10-12
    • 2017-04-26
    相关资源
    最近更新 更多