2012-01-16 4 views
0

Некоторое время искал Google, не найдя ответа на мою проблему. У меня есть 10 таблиц, в которых 5 из них содержат 150 строк. Я хочу добавить 15 строк в эти 5 таблиц, есть ли какое-нибудь простое решение для этого? Я знаю, что легко добавлять строки вручную, но я все равно хочу знать. Я ищу что-то вроде этого:SQL - выберите таблицы, где номер строки XX.

INSERT INTO all_tables VALUES (col1, col2, col3) WHERE row_number() = '150' 

Возможно ли это? Заранее спасибо!

+0

Используете ли вы Oracle, SQL Server или что-то еще? –

+0

Не могли бы вы объяснить свою проблему по-другому. Непонятно ... Вы хотите повторить 150-ю строку или добавить значения, где строки равны определенному значению? И какой вкус SQL? –

+0

Вы meean добавляете дополнительные столбцы или вставляете значения в эти столбцы? –

ответ

4

Целевые обновления могут отображаться только по одной таблице за раз, которые всегда должны указываться по имени. Кроме того, вы не можете указывать предложение WHERE на INSERT. Лучше всего, наверное, написать один INSERT и скопировать и вставить для остальных.

+0

Я боялся этого. Спасибо за Ваш ответ! – Cheezen

1

Вы могли:

  1. Loop через список соответствующих имен таблиц.
  2. Запустите динамический запрос, например select count(*) into @c1 from SpecifiedTable, с соответствующей таблицей, возвращая счетчик в объявленную переменную.
  3. Если возвращаемое значение равно 150, запустите другой динамический запрос, чтобы вставить соответствующие значения в указанную таблицу.

Подробнее о динамических запросах и возвращаемых значениях из них вы можете узнать в MySQL here. Если это один раз, вам, вероятно, будет проще сделать это вручную.

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