Mysql 组条目自动递增

标签 mysql auto-increment

我需要设置一个包含两个自动递增字段的表。 1 个字段将成为每条添加记录的标准主键。另一个字段将用于将多个记录链接在一起。

这是一个例子。

field 1  |  field 2
  1           1
  2           1
  3           1
  4           2
  5           2
  6           3

请注意,字段 1 中的每个值都有自动递增。字段 2 有一个自动增量,增量略有不同。记录 1,2 和 3 同时进行。记录 4 和 5 同时进行。记录6是单独制作的。

读取字段 2 的最后一个条目然后在我的 php 程序中将其递增 1 是否最好?只是在寻找最佳解决方案。

最佳答案

您应该有两个单独的表。

ItemsToBeInserted
id, batch_id, field, field, field

BatchesOfInserts
id, created_time, field, field field

然后您将创建一个批处理记录,并将该批处理的插入 ID 添加到将成为该批处理一部分的所有项目。

如果您将 batch_hash 字段添加到 batches 表,然后检查每个批处理是否是唯一的,这样您就不会意外地提交相同的批处理两次,您将获得奖励积分。

如果您正在寻找一种只使用一张表的更糟糕的方法,您可以这样做:

$batch = //Code to run and get 'SELECT MAX(BATCH_ID) + 1 AS NEW_BATCH_ID FROM myTable' 

并将该 ID 添加到所有插入的记录中。不过我不推荐这样做。你会遇到麻烦。

关于Mysql 组条目自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24044656/

相关文章:

mysql - WordPress - MySQL 自动增加用户 ID

PHP & MySQL : How to create unique `year-month-number` keys?

php - 使用 MySQL 数据库中的数据创建列表

MySQL/玛丽亚数据库 : how to find gaps in timebased data?

mysql - 如何选择一列中数值最小的一行?

mysql - MySQL使用auto_increment时出错

javascript - PDO 和序列化

php - 在库 api 中为每个任务或每个事务创建一个函数?

c# - Sql Server CE - 临时禁用特定列的自动递增

mysql - 查询重新索引 MySQL 数据库的主键