我想知道如果没有程序或服务器端调用数据库,这是否可行。
我正在尝试根据select和服务器提供的其他值将值插入表中。
select语句将返回多个结果。
我知道INSERT SELECT的存在,但有没有SELECT INSERT?或基于select的结果插入的方法?
谢谢
答案 0 :(得分:4)
不确定似乎是什么问题。
你可以这样做:
INSERT INTO table (columns)
SELECT
column or column expression1,
column or column expression2,
…
constant or constant expression1,
constant or constant expression2,
…
FROM a set of tables/joins
WHERE …
不一定按照那个顺序(列,然后是常量),不。您可以按照自己喜欢的方式将列与常量混合,只需按照要插入的列的顺序进行。
那是你问的问题吗?
答案 1 :(得分:3)
我不明白为什么
INSERT INTO yourtable(col1, col2, col3)
SELECT col1, col2, col3
FROM yourothertable
不适合你。但是您总是可以执行SELECT INTO #temptable将查询保存在临时表中,然后您可以在插入之前插入该数据或对其进行操作。不过,这只是对原始想法的一个很长的路要走。
我误解了你的问题吗?
答案 2 :(得分:3)
是。使用此查询:
INSERT INTO FOO (oof, rab) SELECT (foo, bar) FROM BAR;
答案 3 :(得分:1)
我认为你可以这样做:
INSERT INTO targetTable (col1, col2, col3)
SELECT col1, col2, col3 FROM sourceTable
UNION ALL
SELECT 'something' AS col1, 'something else' AS col2, 'yet something else' AS col3 FROM DUAL;