probleme d'update sur multitable

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme d'update sur multitable

par websylvain » 17 mai 2006, 13:51

pourquoi pas. mais comment vois tu les choses pour mettre a jour une table en fonction d'une autre quand tu as besoin de croiser l'info et que tu es oblige de passer par une jointure (qui donc t'empeche de faire une maj). tu fais quoi ? tu fais plus complique ?

par ouckileou » 13 mai 2006, 11:31

On a pas dit que les updates multitables ne fonctionnaient pas

Mais un update multi tables c'est quand tu modifies plusieurs colonnes dans des tables différentes, hors là ce n'est pas le cas :)

par Invité » 12 mai 2006, 18:47

cela fonctionne tres bien en fait !!!! :roll:

la valeur du nbre de rang qui est rendu est le nbre de rang reellement affectes et non pas le nbre de rang potentiellement modifies.
en fait, les rangs ayant deja la valeur que l'on veut mettre ne sont pas comptabilise. CQFD

les updates multitables marchent donc tres bien, et sont tres pratiques car cela evite de balayer un curseur pour ensuite faire les maj.

a+

par Invité » 12 mai 2006, 09:32

salut,

alors pourquoi dans la doc Mysql, il y a
Starting with MySQL 4.0.4, you can also perform UPDATE operations covering multiple tables. However, you cannot use ORDER BY or LIMIT with a multiple-table UPDATE. The table_references clause lists the tables involved in the join. Its syntax is described in Section 13.2.7.1, “JOIN Syntax”. Here is an example:

UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;

http://dev.mysql.com/doc/refman/4.1/en/update.html

par ouckileou » 12 mai 2006, 09:32

Salut,

ce n'est pas un UPDATE multi-tables que tu fais, puisque tu ne veux modifier qu'une table
For the multiple-table syntax, UPDATE updates rows in each table named in table_references that satisfy the conditions. In this case, ORDER BY and LIMIT cannot be used.
http://dev.mysql.com/doc/refman/4.1/en/update.html

Donc essaye d'enlever la table "rencontre" de la liste

par Cyrano » 12 mai 2006, 09:29

Ta requête UPDATE est curieuse: on ne pointe pas vers plusieurs tables d'abord, ensuite, ta clause WHERE n'est pas bonne : il faudrait pointer vers un identifiant de clé étrangère précis. Un UPDATE, ce n'est pas un SELECT.

probleme d'update sur multitable

par websylvain » 12 mai 2006, 09:22

salut,

tout d'abord, je precise que je suis avec MySql 4.qqchose

voilà, j'ai une requête de mise à jour qui me rend 0 rang modifié alors même que je sais qu'il y a des rangs éligibles. j'en veux pour preuve que la même clause where en select me ramène des rangs. je vous montre.

Code : Tout sélectionner

update pari, rencontre set pari.termine = 1 where pari.id_rencontre = rencontre.id_rencontre
cela me dit 0 rang modifié (via code php ou dans phpadmin). si je fais

Code : Tout sélectionner

select * from pari, rencontre where pari.id_rencontre = rencontre.id_rencontre
et bien j'ai quelques rangs. je ne comprend pas. si j'avais des pb de privilège ou autre, je devrais le savoir. et puis si j'ai bien compris, par défaut il s'agit bien d'un inner join. Du reste, dans la doc MySql, il y a un exemple équivalent.

Une idée ? je deviens fou avec ce truc.... :(