Update avec auto incrémentation

Update avec auto incrémentation - SQL/NoSQL - Programmation

Marsh Posté le 04-09-2008 à 10:48:05    

Bien le bonjour :)
 
J'aurais aimé votre aide pour la constitution d'une requête de mise à jour, qui me semble tout bête mais mes capacités ne me permettent pas de l'appréhender :
 
Je souhaite disposer d'une table de test, avec pour le premier enregistrement dans un des champs (le champ "Nom" pour ne pas le citer) la valeur "test 1", pour l'enregistrement suivant "test 2" etc.
 
La clause where ne me pose pas de problemes, mais je ne vois pas comment incrémenter dans ma requête update automatiquement...
 
UPDATE table SET ChampNom=?????? WHERE ChampWhere='toto'
 
il y a 1500 modifs à faire, alors en effet je peux passer par un petit programme qui chargera une variable avant la requete update, et ainsi lancer 1500 requête UPDATE mais j'aurais préféré éviter de passer un tel programme, et en plus pour ma culture personnelle c'est mieux, sans parler du fait que une requête me semble moins couteux en temps machine que 1500 :o
 
Sous ORACLE 7. Une idée quelqu'un ?

Reply

Marsh Posté le 04-09-2008 à 10:48:05   

Reply

Marsh Posté le 04-09-2008 à 11:58:38    

pupoul a écrit :

Bien le bonjour :)
 
J'aurais aimé votre aide pour la constitution d'une requête de mise à jour, qui me semble tout bête mais mes capacités ne me permettent pas de l'appréhender :
 
Je souhaite disposer d'une table de test, avec pour le premier enregistrement dans un des champs (le champ "Nom" pour ne pas le citer) la valeur "test 1", pour l'enregistrement suivant "test 2" etc.
 
La clause where ne me pose pas de problemes, mais je ne vois pas comment incrémenter dans ma requête update automatiquement...
 
UPDATE table SET ChampNom=?????? WHERE ChampWhere='toto'
 
il y a 1500 modifs à faire, alors en effet je peux passer par un petit programme qui chargera une variable avant la requete update, et ainsi lancer 1500 requête UPDATE mais j'aurais préféré éviter de passer un tel programme, et en plus pour ma culture personnelle c'est mieux, sans parler du fait que une requête me semble moins couteux en temps machine que 1500 :o
 
Sous ORACLE 7. Une idée quelqu'un ?


 
je pense que c'est impossible d'executer 1 requete pour updater 1500 tuples
tu seras obliger de faire 1500 update

Reply

Marsh Posté le 04-09-2008 à 12:11:10    

J'ai pas compris ce que devait modifier exactement l'update...il y a quoi actuellement dans ta table?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 04-09-2008 à 12:28:49    

L'update concerne le champ ChampNom, mais la valeur que devra contenir ce champ est variable, c'est le nombre (et la position) d'enregistrements à mettre à jour, en partant de 1.
 
Apparemment, ceci devrait fonctionner mais pas pu tester encore :

Code :
  1. DECLARE @counter int
  2. SET @counter = 0
  3. UPDATE MaTable SET @counter = ChampNom = @counter + 1 WHERE ChampWhere = 'toto'


Derrière ça, une simple requête d'ajout pour y mettre 'Test'

Code :
  1. UPDATE MaTable SET ChampNom = 'Test ' & ChampNom WHERE ChampWhere = 'toto'


 
Et le tour serait joué :)
 
A vérifier évidemment.

Reply

Sujets relatifs:

Leave a Replay

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