MYSQL自动递增,每个外键从0开始

MYSQL自动递增,每个外键从0开始,mysql,Mysql,我们正在编写一个程序,其中表可以有多个输入,这些输入由一个自动递增的id和一个外键定义。对于表中的每个条目,我们希望它看起来像: |fk | ID| | 1 | 0 | | 1 | 1 | | 1 | 2 | | 2 | 0 | | 3 | 0 | | 3 | 1 | 等等。这在数据库端是可能的吗?如下所示: pk | fk | id 1 | 1 | 0 2 | 1 | 1 3 | 2 | 2 pk是具有自动增量的主键列。您不能在DB端

我们正在编写一个程序,其中表可以有多个输入,这些输入由一个自动递增的id和一个外键定义。对于表中的每个条目,我们希望它看起来像:

|fk | ID| | 1 | 0 | | 1 | 1 | | 1 | 2 | | 2 | 0 | | 3 | 0 | | 3 | 1 | 等等。这在数据库端是可能的吗?

如下所示:

pk | fk | id 1 | 1 | 0

2 | 1 | 1

3 | 2 | 2


pk是具有自动增量的主键列。

您不能在DB端设置预期增量。您可以在insert查询中尝试触发器或执行一些技巧,如下所示

INSERT INTO `my_table` (`fk `, `id`) SELECT '3', (SELECT count(`fk `) as n FROM `my_table` WHERE `fk ` = 3 )

将fk值传递给代码中的查询。

再获取一列并将其分配给主键,并且auto incrementID已分配给主键,但当前的情况是,对于下一个外键,auto increment每次都会给出一个唯一的值,而不是从0开始。您的意思是,由于id被设置为主键,所以自动递增是基于整个表noddy强制该列的原始数字吗?这个问题每天都会出现。你没有重置自动增量,你没有让它从零开始,你只是让它保持不变。时期就这么简单。自动增量不供您使用。它不适用于您的应用程序逻辑。它只有一个任务—为表行提供唯一的内容。这就是全部。只是不要碰它,然后添加另一个你用触发器维护的列。哦,但是你只能自动增加一个列。这应该是可以解决的,这意味着我们需要改变我们的整个计划。