插入数据有两种方法:
1》直接update即:UPDATE T SET T.COL2 = ROWNUM + 1 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_objects where object_name='T'(注意一定要大写)
SQL>/
OBJECT_NAME OBJECT_ID
------------------------------ ----------
T50555
切换到sys帐号下
select obj#,col#,name from col$ where obj#=50555
OBJ# COL# NAME
---------- ---------- ----------------------------
50555 1 COL1
50555 2 COL2
50555 3 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
---------- ---------- ------------------------------
50555 1 COL2
50555 2 COL1
50555 2 COL3
提交修改commit
重启服务
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
重新登录表用户下,查询SELECT * FROM T
COL2 COL1 COL3
至此列顺序调整成功
1、首先点击桌面左下角的开始菜单按钮在打开的选择窗口中找到图中的选项,点击打开窗口界面即可。
2、然后在如图所示的界面中选择创建数据库的选项,再点击next即可即可。
3、然后打开图中的设置窗口,选择第一项使用默认的配置然后按照提示输入对应的选项和验证信息即可。
4、这里是刚刚设置的信息选项,可以检查一些主要的信息确认后即可点击next按钮继续就是说开始创建了。
5、等待即可,中途不需要手动设置修改。数据库创建完成后,点击关闭按钮关闭创建向导界面,即可新建一个数据库。
先在数据库中新增一个序列,如在oracle数据库中执行如下语句新增一个名为test_seq的序列CREATE
SEQUENCE
test_seq
INCREMENT
BY
1
--
每次加几个
START
WITH
1
--
从1开始计数
NOMAXVALUE
--
不设置最大值
NOCYCLE
--
一直累加,不循环
以后你往某表中插入数据时,直接用如下形式就行了,比如:
insert
into
test_table
VALUES
(test_seq.nextval,
......)
test_table的第一列就是你要自增的那个id,test_seq.nextval就是从新增的序列中取出下一个值,每取一次都会+1.
当然,一般来说不同的表需使用不同的序列,这样它们的id可以保证连续
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)