日期:2014-05-17  浏览次数:20892 次

【大神。求指教】SQL语句,在所有数据插入完成之后,插入新的一列,再往新的列里插入数据怎么办?
我已经建好了一个表,而且在表中已经插入了数据,现在在表中多插入的一列,又不想,重新输入数据,要怎样才能高效的向新插入的一列中单独插入数据????
各位大神,在下求指教~~~
在此谢过!!!!!!
SQL oracle

------解决方案--------------------
引用:
我已经建好了一个表,而且在表中已经插入了数据,现在在表中多插入的一列,又不想,重新输入数据,要怎样才能高效的向新插入的一列中单独插入数据????
各位大神,在下求指教~~~
在此谢过!!!!!!
              
                  SQL
                  oracle


姑且认为你是希望得到一堆测试数据吧!


--假如下面的这个表
CREATE TABLE FOO(
  ID NUMBER(10),
  NAME VARCHAR2(10)
);
--假如你现在已经插入了如下两条数据
INSERT INTO FOO VALUES(1,'ANDY1');
INSERT INTO FOO VALUES(2,'ANDY1');
--有很多种方法可以模拟测试数据
--第一种  创建100条记录
BEGIN
    FOR I IN 0..100 LOOP
        INSERT INTO FOO VALUES(I,'ANDY'
------解决方案--------------------
I);
    END LOOP;
END;
--第二种
INSERT INTO FOO 
SELECT ROWNUM,A.NAME
------解决方案--------------------
ROWNUM FROM FOO A,FOO B;

...很多方式

------解决方案--------------------
有几种方法:
一 用merge函数,前提是能匹配到唯一的列
二 先给每行增加序列号,然后逐行的往表中插入数据
三 最坏的打算是,先建张临时表保存表中数据。然后清空后利用临时表插入
------解决方案--------------------
也可以通过SQL/DEVELOPER工具直接把对应的列增加进去
create table ttt1(id int)
insert into ttt1 select 1 from dual;
insert into ttt1 select 2 from dual;
select * from ttt1;
alter table ttt1 add cc varchar2(50);

select cc from ttt1 order by id for update; --对应的关系
--此步可以把要添加的值复制成 一列 ,然后贴到查询结果的界面上

COMMIT;