java - mysql数据库中特定列增量

标签 java mysql database

我有一个表 Student,其列名称为 Enroll no(auto_increment)、name、class、section、roll no(auto_increment)。现在我需要增加卷数,无论何时我更改类(class)或部分,无论注册否,任何列都不应从 1 开始。

最佳答案

一种解决方案是对列 roll_no 使用某种默认值(在本例中为 1),并更改表架构,以便列 roll_no 不会出现使用自动递增。然后,每当您 INSERT 一条新记录时,该记录的 roll_no 字段的值为 1。因此,roll_no 列将成为计算字段当您更新类和节字段时。

来自 MySQL 5.1 手册的 CREATE MySQL 5.1 Manual: CREATE

column_definition:
    data_type [NOT NULL | NULL] [DEFAULT default_value]
      [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
      [COMMENT 'string']
      [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]
      [STORAGE {DISK|MEMORY|DEFAULT}]
      [reference_definition]

请注意,您可以为列指定 DEFAULT 值(请参见上面代码的第 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;

设置此系统后,您可以使用 SELECT 查询记录的 roll_no 字段的当前值,然后使用 UPDATE 更新类或节字段。获得 roll_no 字段的当前值后,尝试向其添加 1 并将该结果用作 UPDATE 值。

我对 SQL 有点生疏,而且时间也不够,但我认为它会起作用。如果您遇到困难,请使用有关嵌套查询的良好引用。

关于java - mysql数据库中特定列增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23954334/

相关文章:

c# - 实体应该映射到它自己的数据库表吗?

mysql - 在 MySQL 中存储其他表中行的可搜索引用的最佳方法

database - 将 Linux 操作系统用户帐户导出到 Web 应用程序?

java - 如何记录断言的真实结果

php - 使用php的Mysql选择查询结果为空行值

php - 如何通过下拉列表对数据进行排序

php - 如何在 PHP 中的另一个页面上携带搜索参数值

java - android锁定事件监听器和事件处理

java - 无法让待办事项 Activity 在 fragment 中工作

java - 切换菜单Java