[英]SQL query optimize
在幻灯片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() || ‘/’);
我对吗?
是的,单个插入比插入后更新更好,但在这种情况下,自动生成的id(?)也被用作列值。 路径中使用的LAST_INSERT_ID()不是正在执行的当前insert语句的id,而是最后一个(上一个)插入的id。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.