Autoincrémentation de données dans une table
Bonjour tout le monde,
j'ai un problème sur l'incrémentation d'une donnée dans ma base de données.
Notre chef a voulu changé le format d'une entrée dans la base de données pour que les utilisateurs ne puissent entrer n'importe quoi.
Du coup, cette référence repose sur plusieurs choses
1-La première partie repose sur la clé (4 chiffres)
2-La deuxième partie repose sur la date du jour à l'envers
3-La dernière partie est un compteur sur 2 chiffres
Tout ceci donne par exemple comme référence :A chaque insertion sur la clé, le compteur s'incrémente et peut atteindre 99 chaque jour.
J'ai essayé ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| $req = "SELECT REFERENCE FROM NOTE WHERE CLE ='".$_POST['cle']."'";
$s_req = oci_parse($ora_conn,$req);
oci_execute($s_req);
$debut = substr($reference,0,9);
$milieu = substr($reference,9,8);
$fin = substr($reference,17);
while($row=oci_fetch_array($s_req,OCI_NUM))
{
if($reference == $row[0])
{
$fin = $fin + 1;
$reference = $debut.$milieu.$fin;
}
}
else
{
$reference = $reference;
}
}
oci_free_statement($s_req); |
Mais à la troisième enregistrement, il y a erreur, violation de la clé primaire. Je ne peux pas utiliser les triggers ni les séquences puisqu'avant il y a des références que les utilisateurs ont entré et qui n'ont pas le même schéma que la nouvelle référence.
Merci d'avance pour votre aide.