2010-01-14 8 views
0

est-il possible de regrouper plusieurs de mes colonnes?MySQL colonnes de regroupement

en un pour mes scripts J'ai besoin de mettre plusieurs de mes colonnes à la même valeur, y at-il un meilleur moyen que de taper tous les noms de colonnes dans ma requête de mise à jour?

grâce

Répondre

1

Si ces colonnes doivent toujours avoir la même valeur (cela semble inutile), vous pouvez définir une TRIGGER UPDATE sur la colonne

delimiter | 
CREATE TRIGGER somename BEFORE INSERT ON table1 
FOR EACH ROW BEGIN 
    SET table1.col2=NEW.col1, table1.col3=NEW.col1; 
END; 

delimiter ; 

Mais si Si c'était le cas, il serait vraiment logique d'utiliser une seule colonne au lieu de trois.

Ou, si son émission de droits (cet utilisateur ne devrait pas avoir l'autorisation de faire les différentes colonnes), vous pouvez construire une procédure stockée pour faire la mise à jour

delimiter | 
CREATE STORED PROCEDURE somename(IN val INT,IN whereval INT) 
BEGIN 
    UPDATE table1 SET table1.col1=val, table1.col2=val, table1.col3=val 
    WHERE table1.id=whereval; 
END; 

delimiter ; 
+0

les colonnes ne donnent pas toujours la Même valeur, mais j'ai souvent besoin de réinitialiser les valeurs d'environ 40 colonnes (4 groupes de 10) à la même valeur, donc une sorte de regroupement serait utile. je vois maintenant que je pourrais utiliser une procédure stockée pour le faire :) merci – Juddling

0

Vous devez saisir le nom de chaque colonne, il n'y a pas de solution.

UPDATE mytable 
SET  col1 = 1, 
     col2 = 1, 
     … 
0

Non, ce n'est pas possible.

Voir la syntax for update:

... 
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT} 
...