sql >> Base de Datos >  >> RDS >> Mysql

Establecer todas las columnas de una tabla mysql a un valor particular

Si está buscando una manera de actualizar las 70 columnas a un solo valor con una declaración breve y simple, le recomiendo que escriba un procedimiento almacenado para realizar la actualización. De esa manera, solo necesita escribir la sintaxis de actualización completa una vez y puede reutilizarla una y otra vez llamando al procedimiento almacenado.

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

CALL update_all_columns(1,2);

Otro truco es usar la tabla information_schema.columns para generar la declaración de actualización, lo que hace que sea menos tedioso codificar el procedimiento almacenado.

Algo como esto:

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'