sql >> Databasteknik >  >> RDS >> Mysql

Ställ in alla kolumner i en mysql-tabell till ett visst värde

Om du letar efter ett sätt att uppdatera alla 70 kolumner till ett enda värde med ett kort, enkelt uttalande, rekommenderar jag att du skriver en lagrad procedur för att göra uppdateringen. På så sätt behöver du bara skriva ut hela uppdateringssyntaxen en gång och kan återanvända den om och om igen genom att anropa den lagrade proceduren.

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

CALL update_all_columns(1,2);

Ett annat knep är att använda tabellen information_schema.columns för att generera uppdateringssatsen, vilket gör det mindre tråkigt att koda den lagrade proceduren.

Något så här:

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. Elastisk sökning fulltext vs mysql fulltext?

  2. TSQL Jämför två uppsättningar

  3. Vänster-yttre gå med i Postgres Returnerar inte värden för Null

  4. Hur man släpper databas med hjälp av TSQL och GUI - SQL Server / TSQL Tutorial Del 25