2016-09-19 5 views
1

У меня есть этот запрос:Обновления на основе выбора из INFORMATION_SCHEMA

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE column_name LIKE 'organization_id' 

На основании результата, я хочу, чтобы обновить все возвращенные таблицы с «organization_id» = что-то; Что-то вроде этого:

UPDATE (above query results) SET `organization_id` = 'something' 

ответ

1

Это работа для динамического SQL.

Попробуйте это:

SELECT DISTINCT CONCAT('UPDATE ',t.table_name,' SET organization_id = <ID> ;') 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE column_name LIKE 'organization_id' 

Затем скопируйте выходные данные и выполнить его.

+0

Спасибо. Фактический код таков: 'SELECT DISTINCT CONCAT ('UPDATE', t.table_name, 'SET organization_id = 1;') FROM INFORMATION_SCHEMA.COLUMNS AS t WHERE column_name LIKE 'organization_id'' –

Смежные вопросы