Update multitables [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 26-07-2005 à 23:46:46
Qu'est-ce que c'est lent MySQL... J'aimerais bien faire un autre test pendant que j'attends une réponse (qui risque de tarder vu l'heure )
Marsh Posté le 26-07-2005 à 23:54:01
ouille ouille ouille...
Tu à des jointure entre tes tables???
Elle est vachement confuse ta requete sql, tu nous fait un update en même temps un select, franchement c'est la mission pour comprendre quelque chose..
Marsh Posté le 26-07-2005 à 23:56:01
Ca vient pas non plus des sous-requêtes dans les jointures...
Marsh Posté le 26-07-2005 à 23:57:32
Ben ça s'appelle une requête "complexe". Je met un propriétaire sur tous les terrains colonisables de mon jeu que je suis en train de programmer et que j'ai passé à la trappe depuis quelques temps.
C'est histoire de faire un petit bench entre MySQL et SQL Server. Et là, alors que je lui fait bouffer des trucs bizarres, ça marche pas là dessus...
Marsh Posté le 26-07-2005 à 23:57:58
Sinon, c'est une requête relativement classique de mettre à jour des données d'une table en fonction d'autres tables.
Marsh Posté le 27-07-2005 à 00:06:47
Rhâ...
Citation : |
Reste plus qu'à tout réécrire ma requête
Marsh Posté le 27-07-2005 à 00:19:07
Mouais... Pas terrible !
Code :
|
Rien trouvé de mieu
Heureusement, la création de la table temporaire est rapide !
Marsh Posté le 27-07-2005 à 00:26:15
Question stupide ... J'imagine que si tu as fait cette erreur c'est que sur SQL Server c'est autorisé, mais c'est pas un peu dangeureux de faire un select sur des données que tu updates? Ou alors le sgdb admet que les select sont fait avant et qu'apres, une fois que toutes les données sont obtenues, l'update se lance
Marsh Posté le 27-07-2005 à 00:58:13
C'est pas une erreur.
En effet, l'update est effectif sur l'ensemble des résultats apportés par la partie "select".
C'est tout à fait normal d'ailleurs.
Quand tu fais :
Code :
|
C'est totalement classique, et c'est ce qu'il se passe : il évalue d'abors champ + 1, et met ensuite à jour le résultat.
Marsh Posté le 26-07-2005 à 23:45:32
Salut,
Je voudrais faire un "update multitable" avec MySQL.
D'après la doc, on peut :
Starting with MySQL 4.0.4, you can also perform UPDATE operations that cover multiple tables. The table_references part lists the tables involved in the join. Its syntax is described in Section 13.2.7.1, JOIN Syntax. Here is an example:
Pourtant, lorsque je fais ma requête, il râle :
PS: à la base, j'avais viré l'alias "T1", mais ça ne change rien.
PS²: Pourtant, c'est pas la présence de Terrain plusieur fois qui le gêne, cette requête bidon fonctionne :