Гость
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выполнение insert и update / 12 сообщений из 12, страница 1 из 1
09.12.2021, 08:15
    #40118559
LogFart
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение insert и update
Здраствуйте!
Совсем новичок в Sql , прошу подсказать как сделать:
Есть запрос select и 2 таблицы (t1 и t2) , мне необходимо чтобы вначале выполнялся insert по запросу в таблицу t1 , а затем по этому же запросу выполнялся update в таблицу t2 с условием, никак не получается выполнить это одновременно.
...
Рейтинг: 0 / 0
09.12.2021, 09:18
    #40118562
Павел Воронцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение insert и update
LogFart
Здраствуйте!
Совсем новичок в Sql , прошу подсказать как сделать:
Есть запрос select и 2 таблицы (t1 и t2) , мне необходимо чтобы вначале выполнялся insert по запросу в таблицу t1 , а затем по этому же запросу выполнялся update в таблицу t2 с условием, никак не получается выполнить это одновременно.
Что значит "одновременно"? Это две операции, они так или иначе будут выполнены друг за другом.
...
Рейтинг: 0 / 0
09.12.2021, 09:27
    #40118563
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение insert и update
LogFart,

создаете вью
в триггере для insert и update реализовываете необходимые операции

зы
но так делать скоррее всего неправильно

....
stax
...
Рейтинг: 0 / 0
09.12.2021, 09:48
    #40118566
LogFart
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение insert и update
[/quot]Что значит "одновременно"? Это две операции, они так или иначе будут выполнены друг за другом.[/quot]

А если последовательно , то как объединить выполнение insert'a и update по результату выполнения одного запроса в одной функции? Через триггер?
...
Рейтинг: 0 / 0
09.12.2021, 10:57
    #40118576
Anton_Demin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение insert и update
LogFart,

Код: plsql
1.
2.
3.
4.
5.
6.
FOR i IN 
      (SELECT.....) 
   LOOP
      INSERT INTO some_table.... ;
      UPDATE some_table.... ;
   END LOOP;
...
Рейтинг: 0 / 0
09.12.2021, 11:03
    #40118577
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение insert и update
LogFart
Через триггер?


если insert ето "логирование " update, то возможно и да

.....
stax
...
Рейтинг: 0 / 0
09.12.2021, 13:26
    #40118604
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение insert и update
LogFart
Здраствуйте!
Совсем новичок в Sql , прошу подсказать как сделать:
Есть запрос select и 2 таблицы (t1 и t2) , мне необходимо чтобы вначале выполнялся insert по запросу в таблицу t1 , а затем по этому же запросу выполнялся update в таблицу t2 с условием, никак не получается выполнить это одновременно.

Приведите точные условия (требования) поставленной задачи.
Напишите именно то, что вам задали.
Не нужно ничего пересказывать своими словами.
...
Рейтинг: 0 / 0
09.12.2021, 13:59
    #40118611
LogFart
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение insert и update
SQL*Plus

Приведите точные условия (требования) поставленной задачи.
Напишите именно то, что вам задали.
Не нужно ничего пересказывать своими словами.


Есть запрос в котором выполняется обновление таблицы 1 (изменяется состояние с открыто на закрыто) , нужно чтобы перед обновлением состояния результат запроса добавлялся в таблицу 2.
...
Рейтинг: 0 / 0
09.12.2021, 14:06
    #40118614
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение insert и update
LogFartЕсть запрос в котором выполняется обновление таблицы 1 (изменяется состояние с
открыто на закрыто) , нужно чтобы перед обновлением состояния результат запроса
добавлялся в таблицу 2.

У вас уже была лекция о транзакциях?
А о триггерах?
...
Рейтинг: 0 / 0
09.12.2021, 14:35
    #40118618
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение insert и update
LogFart
SQL*Plus

Приведите точные условия (требования) поставленной задачи.
Напишите именно то, что вам задали.
Не нужно ничего пересказывать своими словами.


Есть запрос в котором выполняется обновление таблицы 1 (изменяется состояние с открыто на закрыто)...

Таблицы не обновляются запросами.
Таблицы обновляются командами (операторами) UPDATE
UPDATE Use the UPDATE statement to change existing values in a table or in the base table of a view
or the master table of a materialized view.

Запросы SELECT используются для выборки данных.

Так и скажите тому, кто дал вам это безграмотное задание.
...
Рейтинг: 0 / 0
09.12.2021, 16:04
    #40118649
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение insert и update
>>> Есть запрос
a) если запрос "Updatable" то просто меняете select from на update table1 set flag='Z'
б) не "Updatable" тогда в списке оставляете ид/ровид строки из таблицы1
получим update table1 set flag='Z' where id/rowid in (select t1.id/rowid from ...)

>>> нужно чтобы перед обновлением состояния
на табличку 1 вешаем триггер before update for each row of flag
в триггере insert into table2() values(:old.x, ..)

....
stax
...
Рейтинг: 0 / 0
13.12.2021, 21:51
    #40119757
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение insert и update
Stax
>>> Есть запрос
a) если запрос "Updatable" то просто меняете select from на update table1 set flag='Z'

Если запрос (inline view) "Updatable", то еще проще:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
SQL> create table dropme_t as select rownum id, 'value #'||rownum some_value from dual connect by level < 6;

Table created


SQL> select * from dropme_t where id > 3;

        ID SOME_VALUE
---------- -----------------------------------------------
         4 value #4
         5 value #5

SQL> update (select * from dropme_t where id > 3) set some_value = 'updated value #'||id;

2 rows updated


SQL> select * from dropme_t;

        ID SOME_VALUE
---------- -----------------------------------------------
         1 value #1
         2 value #2
         3 value #3
         4 updated value #4
         5 updated value #5

SQL> 
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выполнение insert и update / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]