如何在表中插入一个数字,即来自同一fk的记录数加1。
一个解释:有一个表可以容纳相数(1,2,3…)。当一个新的阶段被创建时,我想让列的编号是已经存在的阶段的编号的总和。
我试过用count
在平面204上,将有3个阶段。在html表单上,我只想得到名字和年份。用户不负责阶段的编号。当它被添加时,它是一个连续的数字。
INSERT INTO
phase (
idPlan,
name,
number,
constructionYear
)
VALUES (
204,
'jj',
HERE IS THE SEQUENTIAL NUMBER,
2001
)
CREATE TABLE `phase` (
`idPhase` int(11) NOT NULL AUTO_INCREMENT,
`idPlan` int(11) NOT NULL,
`number` int(11) NOT NULL,
`constructionYear` year(4) NOT NULL,
`name` varchar(100) DEFAULT NULL,
PRIMARY KEY (`idPhase`),
KEY `idPlan` (`idPlan`),
KEY `idPlan_2` (`idPlan`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
1条答案
按热度按时间xxb16uws1#
您可以通过打开触发器来实现这一点
INSERT
:这将找到
number
在INSERT
关于idPlan
将其递增1,然后插入该值。如果没有iDPlan
价值观COALESCE(MAX(number),0)
将返回0,因此将插入1。e、 在一张空table上
输出: