Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Defina todas as colunas de uma tabela mysql para um valor específico


Se você estiver procurando uma maneira de atualizar todas as 70 colunas para um único valor com uma instrução curta e simples, recomendo que você escreva um procedimento armazenado para fazer a atualização. Dessa forma, você só precisa escrever a sintaxe de atualização completa uma vez e pode reutilizá-la repetidamente chamando o procedimento armazenado.
CREATE PROCEDURE update_all_columns (p_new_value SMALLINT, p_id INT) ...

CALL update_all_columns(1,2);

Outro truque é usar a tabela information_schema.columns para gerar a instrução de atualização, tornando menos tedioso codificar o procedimento armazenado.

Algo assim:
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'