如何重置自动递增主键?
我有一个doc_id_seq和一个doc_pk_trg触发器,如下所示:
CREATE SEQUENCE doc_id_seq START WITH 1;
CREATE OR REPLACE TRIGGER doc_pk_trg
BEFORE INSERT ON TFIDF FOR EACH ROW
BEGIN
IF :NEW.doc_id IS NULL THEN
SELECT doc_id_seq.NEXTVAL INTO :NEW.doc_id FROM DUAL;
END IF;
END;
/
我想学习重置序列。我该怎么做呢?
4条答案
按热度按时间ar7v8xwq1#
您可以使用ALTER SEQUENCE语法。
Tom Kyte在这里解释了如何做到这一点:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1119633817597
juzqafwq2#
只需删除并重新创建序列。
baubqpgj3#
这就是我重置它的方法
与删除和重新创建相比,这有一个额外的好处,即不会使任何相关的模式对象失效。
xsuvu9jc4#
试试这个