2015-06-02 3 views
0

Существует таблица tblStudents, которая содержит информацию о student_courses. Каждому новому ученику присваивается CourseNo (varchar) для курса в зависимости от типа курса и типа местоположения. например:Предотвращение одновременных вставок в sql

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_MUMBAI_003). Когда есть параллельные вставки, генерируемое число дублируется. Как можно предотвратить то же самое?

+1

[ 'AUTO_INCREMENT'] (https://dev.mysql.com/doc/refman/5.0/en/example-auto-increment. html) –

+2

Используйте уникальный индекс для столбца CourseNo – Jens

+0

Какие из RDBMS (MySql, Sql Server, Oracle и т. д.)? – StuartLC

ответ

0

Спасибо за ввод.

Использовал следующие 2 вещи в синхронизации для достижения того же. 1. Прикладной уникальный индекс 2. Использовано уровень isolazation как сериализуемый с замком обновления

Смежные вопросы