Insert нескольких строк за раз в Oracle
Например в mysql можно сделать:
Код:
insert into XXX(a,b,c) values ('a','b','c'),('aa','bb','cc');
Хочется узнать, нет ли чего либо подобного в oracle?
select 'a','b','c' from dual
union all
select 'aa','bb','cc' from dual;
Точно. Спасибо.
Код:sql = "INSERT INTO ".active_table." id VALUES "._GET"id"." ON DUPLICATE KEY UPDATE id=id;";Внимание, вопрос: а как правильно одним запросом добавить строку в таблицу, если такой строки там ещё нет?
хм. может я что то не понял, но обычный инсерт вставляет строку в таблицу, даже если ее там еще нет.
Цитата: Serebrjany mir
Что так писать нельзя я знаю : Вместо этого использую
Код:sql = "INSERT INTO ".active_table." id VALUES "._GET"id"." ON DUPLICATE KEY UPDATE id=id;";Внимание, вопрос: а как правильно одним запросом добавить строку в таблицу, если такой строки там ещё нет?
Код:sql = "INSERT INTO ".active_table." id VALUES "._GET"id"." ON DUPLICATE KEY UPDATE id=id;";Внимание, вопрос: а как правильно одним запросом добавить строку в таблицу, если такой строки там ещё нет?
Ваш вопрос слегка не по теме топика, но поясню - инструкция Insert вставляет строку в таблицу всегда, кроме единственного случая - дублируется первичный ключ. Если первичный ключ генерируется последовательностью то инструкция инзерт работает всегда. Если значение первичного ключа устанавливается "в ручную", то для обработки ситуаций используйте перехват исключений. Если вы хотите сделать добавление одним запросом, а при ошибке получить осмысленный ответ от сервера - необходимо создать триггер на событие before insert.
P.S.: Под "осмысленным" ответом подразумевается ответ, который понятен пользователю без дополнительной обработки. Программисту ответ от сервера и так понятен.
Блиииииииин, да когда уже убъют этого бота!!!!!!!!!!!!!!!!!!!!!