Bonjour,
juste pour mon information:
Je me pose une question au sujet d'acces concurrents pour les bases oracle et mysql.
Je prend pour example l'auto increment.
pour oracle, on créé une séquence, puis un trigger sur le insert.
A chaque insertion, un .nextval est utilisé pour avoir un numéro unique. Ce nextval a pour etffet d'incrémenter automatiquement la séquence quelque soit le resultat de l'insert, arretez moi si je me trompe.
Imaginons deux process A et B, pour chaque process, deux étapes trigger puis insert
Comment cela peut-il se passer sous oracle?
Est-ce qu'il est possible que le process B intervienne apres le trigger A mais avant l'insert A?
Dans ce cas, le nextval (qui incrémente tout de suite la séquence) permet de gérer les conflits sur le numéro unique.
C'est ce fonctionnement qui permet de ne pas 'bloquer' les inserts du process B dans le cas ou celui du process A prendrait plus de temp.
Cependant, en cas d'erreur sur l'insert du process A, un numéro unique sera 'perdu'.
Qu'en est-il de l'autoincrément sous MySql?
Quelles sont les actions cachée derriere?
J'ai remarqué que meme en cas d'erreur sur le select, il n'y a pas de numéro unique perdu.
Mais dans le cas ou un process prend du temp, les autres sont-ils bloqués?
merci
Partager