Techniques de réinitialisation des séquences Oracle
Cet article détaille comment remettre à zéro une séquence Oracle. Une méthode courante implique une procédure personnalisée qui récupère d'abord la valeur actuelle de la séquence, puis la décrémente jusqu'à la valeur minimale (zéro dans ce cas) et enfin réinitialise l'incrément à un. Cela garantit que la séquence redémarre à zéro tout en conservant son intégrité.
La procédure efficace de l'expert Oracle Tom Kyte pour réinitialiser une séquence à 0 est présentée ci-dessous :
<code class="language-sql">create or replace procedure reset_seq(p_seq_name in varchar2) is l_val number; begin execute immediate 'select ' || p_seq_name || '.nextval from dual' into l_val; execute immediate 'alter sequence ' || p_seq_name || ' increment by -' || l_val || ' minvalue 0'; execute immediate 'select ' || p_seq_name || '.nextval from dual' into l_val; execute immediate 'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0'; end; /</code>
Pour utiliser cette procédure, passez simplement le nom de la séquence en paramètre :
<code class="language-sql">reset_seq('my_sequence');</code>
Après l'exécution, la séquence 'my_sequence' sera réinitialisée à 0, prête à générer des valeurs uniques séquentiellement à partir de ce point.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!