Mysql
 sql >> Database >  >> RDS >> Mysql

Imposta tutte le colonne di una tabella MySQL su un valore particolare

Se stai cercando un modo per aggiornare tutte le 70 colonne a un unico valore con un'istruzione breve e semplice, ti consiglio di scrivere una procedura memorizzata per eseguire l'aggiornamento. In questo modo devi solo scrivere la sintassi di aggiornamento completa una volta e puoi riutilizzarla più e più volte chiamando la stored procedure.

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

CALL update_all_columns(1,2);

Un altro trucco consiste nell'utilizzare la tabella information_schema.columns per generare l'istruzione di aggiornamento, rendendo meno noioso il codice della procedura memorizzata.

Qualcosa del genere:

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'