高手请问:如何把Oracle表中记录全部删除后,主键(自增字段)复零(重新从1开始递增)! create sequence seq_id minvalue 1 start with 1 increment by 1 nocache; -- 假设ID 为自增长字段CREATE or replace trigger trg_insert_idbefore insert on tablename for each row BEGIN select seq_ID.nextval into :new.ID from dual;END;/ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用存储过程: 1)删除SEQUENCE 2)重建 alter sequence <name> start with 1 ; alter sequence <name> start with 1 ;----------------------------------------------无法重置序号的初始值 alter sequence <name> start with 1 ;必须是8i以上的版本才支持。否则只能重新建立。 alter sequence <name> start with 1 ;必须是8i以上的版本才支持。否则只能重新建立。-------------------------------------------我用的是816,难道必须要9i,10g才可以么? SQL> alter sequence ab start with 1 ;alter sequence ab start with 1 *ERROR 位于第 1 行:ORA-02283: 无法改变起始序号SQL>我的是oracle8.1.7好象也不成的~ 别的我不太清楚,不过Oracle817和Oracle901的ALTER SEQUENCE的功能是改变递增值,最大值,最小值和缓存数另外Oracle817和Oracle901的ALTER SEQUENCE也没有START WITH子句,CREATE SEQUENCE有START WITH子句。希望以上两条可以为你带来一些提示吧。 一种方法是重建。另一种方法是改变increment.可以先select一下nextval,假如为888888,现在要重置为1,假设你原来的increment也是1。alter sequence seq_name increment by -888887;然后select seq_name.nextval from dual;就把currval重置为1了。这种方法的前提是在操作时不能有其他人在引用该序列。 完了之后应该把increment改回去。 ORACLE如何跟踪应用程序的SQL语句 加表空间问题,ALTER TABLESPACE时候突然断网会怎么样 server 2000数据转移到oracle 『oracle 远程导出问题』 pl/sql里定义一个指针,select一个自定义的function,结果报字符溢出 运行c++与oracle10g代码时的错误 求教:不能创建数据库 如何对Oracle数据移植? 关于oracle调外部存储过程的问题 请问Oracle中的表如何导出到FoxPro的dbf表中。 客户端访问oracle速度问题 关于这个连表的查询的sql语句怎么写??紧急!!!
1)删除SEQUENCE
2)重建
----------------------------------------------
无法重置序号的初始值
必须是8i以上的版本才支持。
否则只能重新建立。
必须是8i以上的版本才支持。
否则只能重新建立。
-------------------------------------------我用的是816,难道必须要9i,10g才可以么?
alter sequence ab start with 1
*
ERROR 位于第 1 行:
ORA-02283: 无法改变起始序号
SQL>我的是oracle8.1.7好象也不成的~
可以先select一下nextval,假如为888888,现在要重置为1,假设你原来的increment也是1。
alter sequence seq_name increment by -888887;
然后select seq_name.nextval from dual;
就把currval重置为1了。
这种方法的前提是在操作时不能有其他人在引用该序列。