防止sql中的并发插入
有一个表tblStudents,其中包含有关学生课程的信息。根据课程类型和地点类型,为每个新生分配一个课程编号(varchar)。 例如:防止sql中的并发插入,sql,sql-server,concurrency,insert-statement,Sql,Sql Server,Concurrency,Insert Statement,有一个表tblStudents,其中包含有关学生课程的信息。根据课程类型和地点类型,为每个新生分配一个课程编号(varchar)。 例如: CourseNo Course Location StudentID Date NET_MUMBAI_001 Net Mumbai 100 2/6/2015 NET_MUMBAI_002 Net Mumbai 101 2/
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
新生入学时,它会检查课程和地点组合的最后一个最高使用编号(本例中为002,孟买和Net),并生成一个新的课程编号(Net_Mumbai_003)。当存在并发插入时,生成的编号将重复。如何防止这种情况发生?感谢您的投入
同步使用以下两种方法来实现相同的效果。
1.应用唯一索引
2.已将isolazation级别用作可使用更新锁序列化的列请为列CourseNoWhich RDBMS(MySql、Sql Server、Oracle等)使用唯一索引?请参见此处:CourseNon不能是主键。我的主键有一个不同的列