Объясните пожалуйста логику where exists.
Есть таблица data в нее должен записываться лог, лог должен записываться только если есть определенная запись в таблице data2.
таблица data2
id -integer
имеющиеся записи:
1
2
3
insert into data(column) select 'test' from data2 where exists(select 1 from data2 where id=1);
в результате такого запроса в таблице data создается 3 записи 'test'. Почему так?
Ведь в условии сказано where exists(select 1 from data2 where id=1)
Запрос вида:
insert into data(column) select 'test' from data2 where id=1 and exists(select 1 from data2 where id=1);
работает правильно и в таблице data создается одна запись 'test'.
(триггеры не предлагать потому что данные после формируются по маске)
------------ Дoбавленo в 01.32:
Простите за тупой вопрос разобрался)))
Ответов: 655
Рейтинг: 18
|
|||
карма: 0 |
|