sql >> Database >  >> RDS >> Mysql

Stel alle kolommen van een mysql-tabel in op een bepaalde waarde

Als u op zoek bent naar een manier om alle 70 kolommen bij te werken naar een enkele waarde met een korte, eenvoudige instructie, dan raad ik u aan een opgeslagen procedure te schrijven om de update uit te voeren. Op die manier hoeft u de volledige updatesyntaxis maar één keer uit te schrijven en kunt u deze steeds opnieuw gebruiken door de opgeslagen procedure aan te roepen.

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

CALL update_all_columns(1,2);

Een andere truc is om de tabel information_schema.columns te gebruiken om de update-instructie te genereren, waardoor het minder vervelend wordt om de opgeslagen procedure te coderen.

Zoiets als dit:

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'


  1. CONVERT_TZ – Hoe de MySQL-tijdzone in Query te veranderen

  2. Java-type in JDBC naar Postgres ltree

  3. Mysql start niet in een docker-container op MacOS na docker-update

  4. Ingewikkelde query + pagineringscript