Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / zapolnyat' id v triggere / 7 сообщений из 7, страница 1 из 1
13.12.2011, 13:38
    #37572781
beka4elovekveka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zapolnyat' id v triggere
1) Создать новый Sequence.
3) Создать триггер на таблицу MY_TEST_TABLE, в котором будет заполняться ID из созданного ранее Sequence.
...
Рейтинг: 0 / 0
13.12.2011, 13:46
    #37572805
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zapolnyat' id v triggere
beka4elovekveka1) Создать новый Sequence.
3) Создать триггер на таблицу MY_TEST_TABLE, в котором будет заполняться ID из созданного ранее Sequence. давай мы тебе их порешаем но за деньги?
...
Рейтинг: 0 / 0
23.04.2012, 15:32
    #37766428
dimyaz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zapolnyat' id v triggere
добрый день.
Я не студент и сессию не сдаю, но тоже встречался с этими задачами. И честно говоря не сильно их понял.
Но примерно для себя задачу перефразировал так: Какие бы строки пользователи в эту таблицу не вставляли, сделать так, чтобы в поле ID вставлялось значение последовательности из тригера.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
create or replace trigger id_fill_trig
before insert on my_test_table
for each row
BEGIN
  :NEW.id := test_seq.nextval;
END;
/



Работает вроде норм, если в ID ставить простые числа при вставке, но вот если пользователь заиспользует последовательность во вставке то произойдет скачек последовательности:

Код: sql
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.
29.
30.
31.
32.
SQL> insert into my_test_table
  2  values (12312,EMPTY_CLOB(),EMPTY_BLOB(),'test3',sysdate,null);

1 row created.

SQL> insert into my_test_table
  2  values (1124,EMPTY_CLOB(),EMPTY_BLOB(),'test3',sysdate,null);

1 row created.

SQL> select id from my_test_table;

        ID
----------
       214
       215

SQL> insert into my_test_table
  2  values (dy_0001_test_seq.nextval,EMPTY_CLOB(),EMPTY_BLOB(),'test3',sysdate,
null);

1 row created.

SQL> select id from my_test_table;

        ID
----------
       214
       215
       217

SQL>


получается растрата последовательности впустую. Поэтому у кого какие мысли есть насчет этой задачи?
...
Рейтинг: 0 / 0
23.04.2012, 15:47
    #37766460
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zapolnyat' id v triggere
dimyazу кого какие мысли есть насчет этой задачи?

http://ithappens.ru/story/4016
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.04.2012, 15:51
    #37766469
dimyaz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zapolnyat' id v triggere
Dimitry Sibiryakov,

чет не понял, что находится по этой ссылке
...
Рейтинг: 0 / 0
23.04.2012, 16:05
    #37766497
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zapolnyat' id v triggere
dimyaz получается растрата последовательности впустую.мир уже никогда не будет прежним
Dimitry Sibiryakov http://ithappens.ru/story/4016
...
Рейтинг: 0 / 0
23.04.2012, 17:23
    #37766730
S.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
zapolnyat' id v triggere
SERG1257dimyaz получается растрата последовательности впустую.мир уже никогда не будет прежним
Dimitry Sibiryakov http://ithappens.ru/story/4016


мне рассказывали о человеке, который при вождении машины с беспокойством думал о том как при каждом обороте двигателя, истираются цилиндры и выгорают клапаны..
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / zapolnyat' id v triggere / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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