Mysql
 sql >> Base de données >  >> RDS >> Mysql

Définir toutes les colonnes d'une table mysql sur une valeur particulière

Si vous cherchez un moyen de mettre à jour les 70 colonnes en une seule valeur avec une instruction courte et simple, je vous recommande d'écrire une procédure stockée pour effectuer la mise à jour. De cette façon, vous n'avez besoin d'écrire qu'une seule fois la syntaxe de mise à jour complète et vous pouvez la réutiliser encore et encore en appelant la procédure stockée.

CREATE PROCEDURE update_all_columns (p_new_value SMALLINT, p_id INT) ...

CALL update_all_columns(1,2);

Une autre astuce consiste à utiliser la table information_schema.columns pour générer l'instruction de mise à jour, ce qui rend moins fastidieux le codage de la procédure stockée.

Quelque chose comme ça :

SELECT concat('UPDATE ',
table_name,
' SET ',
group_concat(column_name separator ' = p_new_value, '),
' = p_new_value',
' WHERE id = p_id;') as sql_stmt
FROM information_schema.columns 
WHERE table_schema = 'your_schema' 
AND table_name = 'tablename'
AND column_name != 'id'