Denny Kusumah wrote:
>
> Dear Master oracle
> Saya mo tanya nih, gmn ya caranya mereset sequence.
> Saya telah membuat suatu sequence, misalkan namanya
> 'tcnpm004s' dengan nilai terakhir 18 (select tcnpm004s.nextval from dual),
> yang saya mo tanya kan adakah yang tahu script untuk mereset nilai 
> sequence
> tersebut menjadi satu kembali, saya telah googling kemudian saya 
> mendapatkan sintak
> 'alter sequence tcnpm004s increment by -1 minvalue 0' cara tersebut 
> berhasil mengurangi
> nilai sequence tapi dengan syarat saya menjalankan sintak tersebut 
> selama 17 kali
> (capek deh), nah gmn ya cara langsung mereset sequence biar nilai nya 
> langsung menjadi 1
>  
>  
> -Denny-
>
>
>  














Scriptnya kurang lengkap..

- Ambil nilai terakhir
SQL> COLUMN col new_val inc_by;
SQL> SELECT tcnpm004s.NEXTVAL col FROM DUAL;
       COL
----------
         2

- Jadikan sebagai minus increment
SQL> ALTER SEQUENCE tcnpm004s INCREMENT BY -&inc_by MINVALUE 0;
old   1: ALTER SEQUENCE tcnpm004s INCREMENT BY -&inc_by MINVALUE 0
new   1: ALTER SEQUENCE tcnpm004s INCREMENT BY -         2 MINVALUE 0
Sequence altered.

- Ambil nilai pertama (u/ pengecekan dan penyesuaian nilai mula2)
SQL> SELECT tcnpm004s.NEXTVAL col FROM DUAL;
       COL
----------
         0

- Kembalikan nilai increment default
SQL> ALTER SEQUENCE tcnpm004s INCREMENT BY 1;
Sequence altered.

- Sequence siap digunakan kembali
SQL> SELECT tcnpm004s.NEXTVAL FROM dual;
   NEXTVAL
----------
         1

Untuk efesiensi dan kemudahan pemeliharaan, gunakan Stored Procedure 
untuk melakukan reset sequence.

hth,
AH

Kirim email ke