sql >> Databáze >  >> RDS >> Mysql

Nastavte všechny sloupce tabulky mysql na konkrétní hodnotu

Pokud hledáte způsob, jak aktualizovat všech 70 sloupců na jedinou hodnotu pomocí krátkého jednoduchého příkazu, pak doporučuji napsat uloženou proceduru, která aktualizaci provede. Tímto způsobem stačí napsat úplnou syntaxi aktualizace pouze jednou a můžete ji znovu a znovu používat voláním uložené procedury.

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

CALL update_all_columns(1,2);

Dalším trikem je použití tabulky information_schema.columns ke generování příkazu aktualizace, takže je méně únavné kódovat uloženou proceduru.

Něco takového:

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. Chyba 508 – Bylo dosaženo limitu zdrojů (web php+mysql+jquery)

  2. Cizí klíč MySQL při smazání

  3. Rychlé nalezení odlišných hodnot

  4. Jak získat řádek v SQLite podle indexu (ne podle id)