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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 7000_2010-12-21_01
J'ai essayé ceci :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Merci d'avance pour votre aide.
Partager