一个insert into插入多条记录,可以么?

ncowboy 2004-11-09 02:35:24
我仿佛记得一个insert into,可以放多个values。

是什么数据库支持这么做?
...全文
25810 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiyousyc 2004-11-10
  • 打赏
  • 举报
回复
db2或许会支持楼主的语法。但这个语法肯定不是sql标准语法,更不是oracle不支持的语法。
wdfish 2004-11-10
  • 打赏
  • 举报
回复
如果是插入新值的话,oralce是不支持的,标准sql也不支持
liuyi8903 2004-11-10
  • 打赏
  • 举报
回复
反正oracle是支持将结果集插入到对象中
ncowboy 2004-11-10
  • 打赏
  • 举报
回复
在.net那边一个兄弟问,如何执行一个查询插入n个记录。有人给出n个insert into……;连接在一起。

我忽然想起多个values的用法。只是讨论下,证实下自己的感觉。
ssDOn 2004-11-10
  • 打赏
  • 举报
回复
如果表t1和t2中列col1是一样的定义。
用 insert into t1(col1)
select col1 from t2 where ...(条件.)
符合条件的t2中记录就算有一亿条, 也是会插入到t1的
fingerfoolcn 2004-11-10
  • 打赏
  • 举报
回复
版主说的很对,是有这样的数据库,不过不是厂商提供的软件,这样的软件很多,如果你是用的ORACLER的话,我给你这样一个工具,你可以用GOOGLE搜一下,很常用的在很多大公司都用这个建立ORACLE数据库,我有时也用,不过我更加倾向于手动建立。
PL/SQL Developer,这个工具就可以满足你的要求
xinrong 2004-11-10
  • 打赏
  • 举报
回复
不是吧,楼主.你搞数据库开发,是由语法而选择数据库的,而不是根据数据库的性能和系统的要求而对数据库进行选择的?
mittee 2004-11-09
  • 打赏
  • 举报
回复
insert into table_1 (id,name)
select '1','w'
union
select '2','z'
union
...........
..........
zealot_zk 2004-11-09
  • 打赏
  • 举报
回复
红蜘蛛的方法是在oracle9i中新加入的,应该能满足你的要求,除了insert all 以外还有一个insert first,他们的区别是:insert all 会执行所有满足条件的插入;而insert first 只象满足条件的第一个when语句中插入数据
ncowboy 2004-11-09
  • 打赏
  • 举报
回复
我说的,是新插入数据。

上面zmgowin(隐者(龙祖宗)) 提到这个。呵呵,看来我没有记错。应该有那么一种数据库。是db2?

等我去看看标准sql有没有这个。
xinrong 2004-11-09
  • 打赏
  • 举报
回复
我献丑下:
1.如果用insert into table_name values (field_name1,field_name2,field_name3)这个命令的话,每次只能插入一条记录.
2.insert into table_name1 select field_name1,field_name2 from table_name2 where +条件;用这个命令,可以从已存在的表table_name2中选择多条符合where 条件的记录一次性地插入table_name1表中.

hzf005 2004-11-09
  • 打赏
  • 举报
回复
insert into tab_name1(col1,col2,col3...)
select col1,col2,col3...
from tab_name2
where ...;

-------------------------------------------
INSERT ALL
INTO SAL_HISTORY(empno, hire_date, sal) VALUES( empid, hiredate, sal )
INTO MGR_HISTORY(employee_id, mgr, salary) VALUES( empid, mgr, sal )
SELECT employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR
FROM EMPLOYEES
WHERE employee_id > 200;
------------------------------------------
INSERT ALL
WHEN sal > 10000 THEN
INTO SAL_HISTORY(empno, hire_date, sal) VALUES( empid, hiredate, sal )
WHEN mgr > 200 THEN
INTO MGR_HISTORY(employee_id, mgr, salary) VALUES( empid, mgr, sal )
SELECT employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR
FROM EMPLOYEES
WHERE employee_id > 200;
-------------------------------------
INSERT FIRST
WHEN sal > 25000 THEN
INTO SPECIAL_SAL VALUES(deptid, sal)
WHEN HIREDATE LIKE ('%00%') THEN
INTO HIREDATE_HISTORY_00 VALUES(deptid, hiredate)
WHEN HIREDATE LIKE ('%99%') THEN
INTO HIREDATE_HISTORY_99 VALUES(deptid, hiredate)
ELSE
INTO HIREDATE_HISTORY VALUES(deptid, hiredate)
SELECT department_id deptid, SUM(salary) sal, MAX(hire_date) hiredate
FROM EMPLOYEES
GROUP BY department_id;
------------------------------

INSERT ALL
INTO SALES_INFO VALUES( employee_id, week_id, sales_mon)
INTO SALES_INFO VALUES( employee_id, week_id, sales_tue)
INTO SALES_INFO VALUES( employee_id, week_id, sales_wed)
INTO SALES_INFO VALUES( employee_id, week_id, sales_thur)
INTO SALES_INFO VALUES( employee_id, week_id, sales_fri)
SELECT employee_id, week_id, sales_mon, sales_tue, sales_wed, sales_thur, sales_fri
FROM SALES_SOURCE_DATA;

fengfengjunjun 2004-11-09
  • 打赏
  • 举报
回复
不会吧,真的有这样的数据库
GerryYang 2004-11-09
  • 打赏
  • 举报
回复
一看就知道是有很多值要插入到一个表里.
最笨的办法
用 insert into tablename (col1,col2,...)
select * from (
select 'a1','a2',... from dual union all
select 'a1','a2',... from dual union all
select 'a1','a2',... from dual union all
...)

要用ultraedit 编辑成SQL
wupangzi 2004-11-09
  • 打赏
  • 举报
回复
zhaokeke2004(大力)的方法是可以的!
zmgowin 2004-11-09
  • 打赏
  • 举报
回复
呵呵,楼主好像说的也对,我也记得有种数据库支持这种操作,但记不清了
zhaokeke2004 2004-11-09
  • 打赏
  • 举报
回复
如果是多条记录的话用
insert into table_name
select ...
from table_name2
where ....
pawly 2004-11-09
  • 打赏
  • 举报
回复
不可能放多个value
要放入多条数据可以用
insert into tab_name1(col1,col2,col3...)
select col1,col2,col3...
from tab_name2
where ...;
bluelamb 2004-11-09
  • 打赏
  • 举报
回复
只能有一个value
comcn 2004-11-09
  • 打赏
  • 举报
回复
一条insert into语句只应该有一个VALUES
你就不怕把自已弄晕啊,也只不过是多打几个字而已

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧