0

在幻灯片http://www.slideshare.net/billkarwin/models-for-hierarchical-data中,我看到了一个 sql 代码(第 22 页):

INSERT INTO Comments (author, comment)
VALUES (‘Ollie’, ‘Good job!’);

SELECT path FROM Comments
WHERE comment_id = 7;

UPDATE Comments
SET path = $parent_path || LAST_INSERT_ID() || ‘/’
WHERE comment_id = LAST_INSERT_ID();

我认为我们可以优化它:

SELECT path FROM Comments
WHERE comment_id = 7;

INSERT INTO Comments (author, comment, path )
VALUES (‘Ollie’, ‘Good job!’,  $parent_path || LAST_INSERT_ID() || ‘/’);

我对吗?

4

1 回答 1

2

是的,单个插入比插入后更新要好,但在这种情况下,自动生成的 id(?) 也被用作列值。路径中使用的 LAST_INSERT_ID() 不是当前正在执行的插入语句的 id,而是最后(上一个)插入的 id。

于 2012-11-09T04:59:42.903 回答