我有一个名为-大学和学生的表
我想在注册时为学生生成唯一的注册号
在单个学院中,可以同时进行多个注册。例如,学院-ABC有很多人可以注册学生
我生成注册ID的逻辑是YY_College-Pk_最后5位数字
YY_COLFK_DDDDD
在学生注册时,我将首先触发Max查询,例如
select Max(Enrollment_No) from student where College_Fk=101
并获取最后一个Enrollment_No,然后将最后五位数字拆分并加1并插入
如果有机会同时提交两个学生的数据,就有可能为两个学生生成一个Enrollment_No。
如何解决此问题
答案 0 :(得分:1)
在Java方面,您可以从诸如UUID之类的概念中汲取灵感(例如,参见https://www.baeldung.com/java-uuid)。
但是在使用数据库时,您应该使用该部分的功能,请参见How to generate unique id in MySQL?中的一些示例。
换句话说:数据库是事实的唯一来源。它为您提供了具有唯一性的ID!
答案 1 :(得分:0)
如果您想同时添加两个学生数据,那么您必须使用两次insert语句,因此对于每个数据,您都必须要