Mysql
 sql >> база данни >  >> RDS >> Mysql

Задайте всички колони на таблица mysql на определена стойност

Ако търсите начин да актуализирате всички 70 колони до една стойност с кратък, прост оператор, тогава ви препоръчвам да напишете съхранена процедура, за да извършите актуализацията. По този начин трябва да напишете пълния синтаксис на актуализацията само веднъж и можете да го използвате отново и отново, като извикате съхранената процедура.

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

CALL update_all_columns(1,2);

Друг трик е да използвате таблицата information_schema.columns за генериране на израза за актуализиране, което прави кодирането на съхранената процедура по-малко досадно.

Нещо подобно:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO в производителността на mysql

  2. mySQL>> Добавяне на HREF връзки към Distinct GROUP_CONCAT

  3. MYSQL:АКО има OR условие и REGEXP съвпадат

  4. Java/Mysql..SQLEизключение:Една таблица трябва да има поне 1 колона SQLState:42000 VendorError:1113

  5. Използване на SUM() без групиране на резултатите