Java mysql数据库中的特定列增量

Java mysql数据库中的特定列增量,java,mysql,database,Java,Mysql,Database,我有一个表Student,列名为注册号(自动增量)、名称、类、节、卷号(自动增量)。现在,每当我更改类或节时,我需要将roll\u no列从1开始递增,而不管注册号如何。一种解决方案是为columnroll\u no使用某种默认值(在本例中为1),并更改表架构,使columnroll\u no不使用自动递增。然后,每当您插入一条新记录时,该记录的滚动编号字段将为值1。因此,当您更新类字段和节字段时,列roll\u no将成为计算字段 从MySQL 5.1手册的CREATE 请注意,可以为列指定默

我有一个表Student,列名为注册号(自动增量)、名称、类、节、卷号(自动增量)。现在,每当我更改类或节时,我需要将roll\u no列从1开始递增,而不管注册号如何。

一种解决方案是为columnroll\u no使用某种默认值(在本例中为1),并更改表架构,使columnroll\u no不使用自动递增。然后,每当您
插入一条新记录时,该记录的滚动编号字段将为值1。因此,当您更新类字段和节字段时,列roll\u no将成为计算字段

从MySQL 5.1手册的
CREATE

请注意,可以为列指定默认值(请参见上面代码的第2行)。 这是一个不完善的模板,可以让您继续。同样,如果需要,请使用文档

CREATE TABLE foo(
enroll_no int AUTO_INCREMENT PRIMARY KEY,
name (blah),
class (blah),
section (blah),
roll_no NOT NULL DEFAULT 1 COMMENT 'Must be calculated before UPDATEing class or section.')
ENGIN=InnoDB DEFAULT CHARSET =utf8;
设置此系统后,在使用
UPDATE
更新类或节字段之前,您将使用
SELECT
查询记录的卷号字段的当前值。一旦获得滚动字段的当前值,尝试向其添加1,并使用该结果作为更新值


我对我的SQL有点生疏,而且时间很短,但我认为它会起作用。如果你陷入困境,请使用嵌套查询的一个很好的参考。MySQL触发器中的

@ RAHUL不能操作它们分配给的表。考虑提供适当的DDL(和/或SqLoFIDLE)和期望的结果集。AutoYLoad应该注意这一点(至少它对于主键而言),你面临的问题是什么?目前你的问题太模糊了,无法回答。嗨,rath,事实上,注册号是学校中的单个学生的,它是一个主键。但是,注册号不同于注册号,一些注册LKG班的学生注册号应该从LKG班的1号开始,每当有一个学生想报名参加UKG班时,他的卷号也应从UKG班的第一名开始。
CREATE TABLE foo(
enroll_no int AUTO_INCREMENT PRIMARY KEY,
name (blah),
class (blah),
section (blah),
roll_no NOT NULL DEFAULT 1 COMMENT 'Must be calculated before UPDATEing class or section.')
ENGIN=InnoDB DEFAULT CHARSET =utf8;