Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Setzen Sie alle Spalten einer MySQL-Tabelle auf einen bestimmten Wert

Wenn Sie nach einer Möglichkeit suchen, alle 70 Spalten mit einer kurzen, einfachen Anweisung auf einen einzigen Wert zu aktualisieren, dann empfehle ich Ihnen, eine gespeicherte Prozedur zu schreiben, um die Aktualisierung durchzuführen. Auf diese Weise müssen Sie die vollständige Aktualisierungssyntax nur einmal schreiben und können sie immer wieder verwenden, indem Sie die gespeicherte Prozedur aufrufen.

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

CALL update_all_columns(1,2);

Ein weiterer Trick besteht darin, die Tabelle information_schema.columns zu verwenden, um die Update-Anweisung zu generieren, wodurch es weniger mühsam wird, die gespeicherte Prozedur zu codieren.

Etwa so:

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'