oracle怎么给表加列 oracle给表添加列

如何在oracle表中添加一列数据 ,并且自动增长?oracle中没有自动增长oracle怎么给表加列,只有序列号
添加一条记录和sqlserver一样
语法oracle怎么给表加列:insert into table(列,列,列) values(value,value,value);
如果有个自动增长列
可以用这种方法oracle怎么给表加列 , 首先创建一个序列号SEQ_Test
然后insert into table(ID,列,列) values(SEQ_Test.nextval,value,value);
oracle怎么用命令向建好的表中插入一列并使它成为第一列?请说详细点,最好举例说明 。分为两步来实现,首先插入数据 , 假设表T,有字段col1,col2,col3,需要向前200行oracle怎么给表加列的col2插入行数 1的值,并将col2变为第一列,
插入数据有两种方法oracle怎么给表加列:
1》直接update即:UPDATE T SET T.COL2 = ROWNUM1 WHERE ROWNUM =200;
2》写一个存储过程
CREATE OR REPLACE PROCEDURE INS IS
BEGIN
FOR I IN 1 .. 200 LOOP
INSERT INTO T (COL2) VALUES (I);
END LOOP;
COMMIT;
END;
编译并运行该过程,插入列即完成 。
下面将COL2列调整为第一列:
方法一:借用临时表,建temp表与t表的表结构、数据完全一致,重建t表 , 调整字段顺序,再将temp表的数据导回来,即
CREATE TABLE TEMP AS SELECT * FROM T;
CREATE TABLE T(
COL2 TYPE,
COL1 TYPE,
COL3 TYPE
);
INSERT INTO T
SELECT COL2,COL1 , COL3 FROM TEMP;
COMMIT;
DROP TABLE TEMP;
此方法需要足够的空间、回滚段和时间消耗
方法2:利用数据库表对象更新字段的序列号
在当前表用户下使用下面命令查询T对象的编号:
select OBJECT_name,object_id from all_objectswhere object_name='T';(注意一定要大写)
SQL /
OBJECT_NAMEOBJECT_ID
------------------------------ ----------
T50555
切换到sys帐号下
select obj#,col#,name from col$ where obj#=50555;
OBJ#COL# NAME
---------- ---------- ----------------------------
505551 COL1
505552 COL2
505553 COL3
Elapsed: 00:00:00.03
下面可以通过修改这个系统表来实现修改列名与顺序,注意,COL#就是列的顺序 。
UPDATE COL$ SET COL#=2 WHERE OBJ#=50555 and name='COL1';
UPDATE COL$ SET COL#=1 WHERE OBJ#=50555 and name='COL2';
再次查询
select obj#,col#,name from col$ where obj#=50555;
OBJ#COL# NAME
---------- ---------- ------------------------------
505551 COL2
505552 COL1
505552 COL3
提交修改commit ;
重启服务
SQL SHUTDOWN IMMEDIATE
SQLSTARTUP
重新登录表用户下,查询SELECT * FROM T;
COL2 COL1 COL3
至此列顺序调整成功
oracle 请问一下,一张已经建好的表,怎样在其中一列上添加自增列???新手,求解?。。?/h2>先建一个sequence:有按钮可以直接建,也可以sql建
DROP SEQUENCE _SEQUENCE;
CREATE SEQUENCE _SEQUENCE
START WITH 1000
MAXVALUE 99999999
MINVALUE 1
NOCYCLE
NOCACHE
ORDER;
再建一个trigger:
DROP TRIGGER _TRIGGER;
CREATE OR REPLACE TRIGGER _TRIGGER
BEFORE INSERT
ON tablenameFOR EACH ROW
DECLARE
nextidNUMBER;
BEGIN
IF :new.UserID IS NULL OR :new.UserID = 0
THEN
SELECT _SEQUENCE.NEXTVAL INTO nextid FROM sys.DUAL;
:new.UserID := nextid;
END IF;
END _TRIGGER;
/
【oracle怎么给表加列 oracle给表添加列】关于oracle怎么给表加列和oracle给表添加列的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读