我有一个来自一个表(FileInstance)的多个 SELECT 请求,这些 SELECT 使用 MAX 函数。在这个 INSERT 语句中SELECT MAX(Sequence) FROM FileInstance
是否会给出相同的结果?是否可以在这些 SELECT 之间添加一条记录并且我会捕获不同的值?
INSERT INTO
FileInstance (Data, Size, FileID, ChangesetID)
VALUES
(
(SELECT Data FROM FileInstance WHERE FileID=%1 AND Sequence=(SELECT MAX(Sequence) FROM FileInstance WHERE FileID=%1)),
(SELECT Size FROM FileInstance WHERE FileID=%1 AND Sequence=(SELECT MAX(Sequence) FROM FileInstance WHERE FileID=%1)),
%1,
NULL
);
当然,我认为两个调用 SELECT MAX(Sequence) FROM FileInstance WHERE FileID=%1 将转换为一个调用,但我只是想确定一下。
我使用postgresql 9.2。谢谢!