Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Insert нескольких строк за раз в Oracle

416
23 сентября 2009 года
MaitreDesir
380 / / 02.01.2008
Подскажите пожалуйста, как можно добавить несколько строк одним insert'ом?
Например в mysql можно сделать:
 
Код:
insert into XXX(a,b,c) values ('a','b','c'),('aa','bb','cc');

Хочется узнать, нет ли чего либо подобного в oracle?
8.2K
23 сентября 2009 года
Ora-cool
211 / / 20.09.2007
insert into XXX(a,b,c)
select 'a','b','c' from dual
union all
select 'aa','bb','cc' from dual;
416
28 сентября 2009 года
MaitreDesir
380 / / 02.01.2008
Точно. Спасибо.
52K
12 октября 2009 года
Serebrjany mir
10 / / 11.09.2009
Что так писать нельзя я знаю : Вместо этого использую
Код:sql = "INSERT INTO ".active_table." id VALUES "._GET"id"." ON DUPLICATE KEY UPDATE id=id;";Внимание, вопрос: а как правильно одним запросом добавить строку в таблицу, если такой строки там ещё нет?
6
12 октября 2009 года
George
4.1K / / 05.01.2007
хм. может я что то не понял, но обычный инсерт вставляет строку в таблицу, даже если ее там еще нет.
416
12 октября 2009 года
MaitreDesir
380 / / 02.01.2008
Цитата: Serebrjany mir
Что так писать нельзя я знаю : Вместо этого использую
Код:sql = "INSERT INTO ".active_table." id VALUES "._GET"id"." ON DUPLICATE KEY UPDATE id=id;";Внимание, вопрос: а как правильно одним запросом добавить строку в таблицу, если такой строки там ещё нет?



Ваш вопрос слегка не по теме топика, но поясню - инструкция Insert вставляет строку в таблицу всегда, кроме единственного случая - дублируется первичный ключ. Если первичный ключ генерируется последовательностью то инструкция инзерт работает всегда. Если значение первичного ключа устанавливается "в ручную", то для обработки ситуаций используйте перехват исключений. Если вы хотите сделать добавление одним запросом, а при ошибке получить осмысленный ответ от сервера - необходимо создать триггер на событие before insert.

P.S.: Под "осмысленным" ответом подразумевается ответ, который понятен пользователю без дополнительной обработки. Программисту ответ от сервера и так понятен.

14
13 октября 2009 года
Phodopus
3.3K / / 19.06.2008
Блиииииииин, да когда уже убъют этого бота!!!!!!!!!!!!!!!!!!!!!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог