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 に答える