MYSQL 能否根据列输入值跟踪多个自动增量?

Can MYSQL keep track of multiple Auto Increments based on a column input value?

我有一个 table,它的基本自动增量称为 post_id。我还有其他专栏,tag_idtag_name.

目前,每当我插入这个 table 时,post_id 都会自动递增。但是我还想做的也是根据 tag_name 是什么自动增加 tag_id 。例如,如果 tag_name 是“A”,那么 tag_id 应该是 1。接下来插入,tag_name 是“A” tag_id 是2。但是,下一个插入,tag_name 是“B”,tag_id 现在是 1。等等等等

MyISAM 和 InnoDB 都只支持每个 table.

自增一次

由于竞争条件,在支持并发更新的存储引擎中无法管理任何按组自动递增的功能。

MyISAM 支持auto-increment as a secondary column of a key,因此它为同一键的第一列中的每个值独立编号。但这仍然对你不起作用,因为 MyISAM 不支持每个 table.

两个自动列
mysql> create table MyTable (
    -> post_id int auto_increment primary key,
    -> tag_name varchar(10),
    -> tag_id int auto_increment,
    -> unique key (tag_name, tag_id)
    -> ) engine=myisam;
ERROR 1075 (42000): Incorrect table definition; there can be only one
auto column and it must be defined as a key

您必须手动为 tag_id 编号。这意味着您无法支持对此 table.

的并发更新

IMO,你应该重新考虑你正在尝试做什么。