我有一个包含以下列的表
id
parent_id
title
description
weight
每一行都属于父级。每一行都有一个权重,用于确定父页面上的顺序。 每次添加新行时,我希望新行的权重等于该父ID的最大权重+1。
有没有办法在插入查询中执行此操作?
答案 0 :(得分:1)
试试这个,我不确定它是否会起作用,因为我手边没有sql server。但我觉得我之前做过类似的事情。
INSERT INTO table (id, parent_id, title, description, weight)
VALUES (2,1,'title', 'description', 1+(SELECT MAX(weight) FROM table))
将表替换为您的表名,将值替换为您需要的值,当然。
答案 1 :(得分:1)
这应该有效
INSERT INTO myTable (id,parent_id,title,description,weight)
VALUES (idValue,parentValue,idValue,titleValue,descriptionValue,
(SELECT MAX(weight) FROM myTable WHERE parent = parentValue))
答案 2 :(得分:1)
如果 parent_id = 1和 ID = 111
INSERT INTO table (id, parent_id, title, description, weight)
VALUES (111,1,'title', 'description', (SELECT MAX(weight) FROM table WHERE parent_id=1) + 1)