【发布时间】: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)。当有并发插入时,生成的数量是重复的。如何预防?
【问题讨论】:
-
对 CourseNo 列使用唯一索引
-
请使用哪个 RDBMS(MySql、Sql Server、Oracle 等)?
-
CourseNo 不能是主键。我有一个不同的主键列
标签: sql sql-server concurrency insert-statement