oracle utiliser la même table pour lire ....

oracle utiliser la même table pour lire .... - SQL/NoSQL - Programmation

Marsh Posté le 03-05-2010 à 14:20:45    

Salut,
 
Supposons que j'ai une table oracle dans laquel j'ai des données
et que je souhaite inseré d autre donnée dans ma table;
avant d'inserer je teste si les données existes et si ce n'est pas le cas je les insere
 
en faisant cela je suis donc obligé de lire ma table et d'inserer dans la meme table,
on me dit que ce n'est pas bien de faire cela
 
pourquoi donc ?
les données que j'insere sont des données qui n existe pas dans la table.
 
Merci

Reply

Marsh Posté le 03-05-2010 à 14:20:45   

Reply

Marsh Posté le 03-05-2010 à 14:42:15    

Si. Tout le monde fait comme ça.
 
Une petite subtilité, qui ne remet pas en cause le principe de la lecture avant l'insertion, est que, parfois, au lieu d'un SELECT, on fait SELECT FOR UPDATE, pour bloquer l'enregistrement que l'on va mettre à jour. Mais, d'une part, ce n'est pas nécesaire dans toutes les situations, et d'autre part, pour une insertion, il n'y a pas de blocage à faire a priori.


Message édité par olivthill le 03-05-2010 à 14:42:24
Reply

Marsh Posté le 03-05-2010 à 15:01:21    

Sinon tu as la tres peu utilisee instruction merge decrite ici qui le fait tres bien mais c'est oracle only (remarque vu le libelle de ton topic ca devrait aller).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed