一个简短的问题:什么是更好的方式和原因?
使用A
INSERT INTO someTable(fieldA, fieldB, fieldC)
SELECT 'consA', 'consB', other.value FROM other WHERE XXX
或使用B:
INSERT INTO someTable(fieldA, fieldB, fieldC)
VALUES ('constA', 'constB', (SELECT other.value FROM other WHERE XXX));
或其他什么......?
(x
可以是匹配单行的任何条件,示例在postgresql中有效)
答案 0 :(得分:5)
第一种方法通常更好,因为第二种方法冒着做两件事之一的风险:
NULL
值。当然,这可能是理想的行为。
通常,insert . . . select
比insert . . . values()
更通用。我更喜欢前者,因为它更强大,在更多情况下更有用(包括可以使用values
的所有情况)。