Maison >base de données >tutoriel mysql >Comment réinitialiser efficacement une séquence Oracle à zéro ?
Moyen efficace de remettre à zéro la séquence Oracle
PostgreSQL utilise la commande ALTER SEQUENCE
en conjonction avec l'option RESTART
pour réinitialiser efficacement la séquence. Cependant, il n'existe pas de commande correspondante directe dans Oracle.
Solution Oracle : Processus personnalisé
L'expert Oracle Tom Kyte propose une procédure puissante pour réinitialiser une séquence à 0. Ce processus comprend les étapes suivantes :
Déterminez la valeur de séquence actuelle :
l_val
). Ajuster l'incrément de séquence :
Annuler les modifications :
Exemple de processus :
Le processus de personnalisation suivant reset_seq
résume les étapes ci-dessus :
<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>
Plus de ressources :
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!