Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
 помогите написать триггер!!!  [new]
Mimika
Member

Откуда:
Сообщений: 21
Помогите написать триггер на insert, чтобы при добавлении каждой новой записи значение в столбце id увеличивалось на 1
27 авг 08, 12:26    [6114079]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Wladislaw
Member

Откуда:
Сообщений: 245
А посмотреть в FAQ религия запрещает?
27 авг 08, 12:31    [6114114]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
А что-то непонятно в доке? Или Вы ее по политическим соображениям читать не хотите?
FAQ№3
27 авг 08, 12:31    [6114117]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Китаеза
Guest
Mimika
Помогите написать триггер на insert, чтобы при добавлении каждой новой записи значение в столбце id увеличивалось на 1


1) Поиск по словам TRIGGER, SEQUENCE, INCREMENTAL.
2) Ознакомиться с проблемой потенциальных "дырок" при использовании sequence.
3) Ознакомиться с проблемой длительной блокировки "ресурса-счетчика" в случае требования
непрерывности значений id.

P.S. 1025-е серьезное китайское предупреждение - прежде чем задавать вопрос идем в FAQ.
27 авг 08, 12:32    [6114126]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Mastack1
Member

Откуда:
Сообщений: 52
create sequence tablename_seq
minvalue 1
maxvalue 2000000000
start with 1
increment by 1;

create trigger before_insert_tablename
  before insert on tablename
  for each row
begin
  select tablename_seq.nextval into :new.id from dual;
end before_insert_ssr;

А вообще-то неплохо документацию прочесть для начала, а не задавать детские вопросы.
27 авг 08, 12:34    [6114144]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Mastack1
Member

Откуда:
Сообщений: 52
Однако... Вечно я опаздываю.
Ознакомиться с проблемой потенциальных "дырок" при использовании sequence.

Вы про конструкцию 'cache' ? Ну это понятно (если документацию прочесть). Мне непонятно желание некоторых любой ценой обеспечивать "непрерывность ряда".
27 авг 08, 12:40    [6114192]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Mimika
Member

Откуда:
Сообщений: 21
Mastack1
create sequence tablename_seq
minvalue 1
maxvalue 2000000000
start with 1
increment by 1;

create trigger before_insert_tablename
  before insert on tablename
  for each row
begin
  select tablename_seq.nextval into :new.id from dual;
end before_insert_ssr;

А вообще-то неплохо документацию прочесть для начала, а не задавать детские вопросы.


Писала тоже самое-ничего не работает. триггер даже не создается и не выдает сообщения об ошибке=( и документацию я читала...
27 авг 08, 12:42    [6114205]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Mastack1
Ознакомиться с проблемой потенциальных "дырок" при использовании sequence.
Вы про конструкцию 'cache' ?
Ну вообще-то и без кеширования более одной записи дырки возможны :) Просто с cache > 1 их размер может за раз увеличиваться :)
27 авг 08, 12:43    [6114211]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Mimika
Писала тоже самое-ничего не работает. триггер даже не создается и не выдает сообщения об ошибке=(
Да ладно. Где создаем? Если в Плюсе, то show erros запускаем?
27 авг 08, 12:44    [6114225]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Mimika
Member

Откуда:
Сообщений: 21
Jannny
Mimika
Писала тоже самое-ничего не работает. триггер даже не создается и не выдает сообщения об ошибке=(
Да ладно. Где создаем? Если в Плюсе, то show erros запускаем?

в оракле
27 авг 08, 12:46    [6114232]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Mimika
Jannny
Mimika
Писала тоже самое-ничего не работает. триггер даже не создается и не выдает сообщения об ошибке=(
Да ладно. Где создаем? Если в Плюсе, то show erros запускаем?
в оракле
Уже хорошо Но хотелось бы знать имя ГУИ, которое Вы используете.
27 авг 08, 12:47    [6114243]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Mimika
Member

Откуда:
Сообщений: 21
Jannny
Mimika
Jannny
Mimika
Писала тоже самое-ничего не работает. триггер даже не создается и не выдает сообщения об ошибке=(
Да ладно. Где создаем? Если в Плюсе, то show erros запускаем?
в оракле
Уже хорошо Но хотелось бы знать имя ГУИ, которое Вы используете.


не знаю. я только учусь
27 авг 08, 12:49    [6114252]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
semenar
Member

Откуда: Днепропетровск
Сообщений: 3308
Блог
автор
не знаю.

Куда команды вводите???
27 авг 08, 12:52    [6114272]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Mimika
Member

Откуда:
Сообщений: 21
semenar
автор
не знаю.

Куда команды вводите???


в эдитор
27 авг 08, 12:54    [6114288]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Mimika
semenar
автор
не знаю.
Куда команды вводите???
в эдитор
Нда, разговор тот ещё

Ладно Бог с Вами - ввдеите в свой "эдитор" запрос:
select * from user_errors where name = 'ИМЯ ВАШЕГО ТРИГГЕРА БОЛЬШИМИ БУКВАМИ' order by position
27 авг 08, 12:56    [6114301]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Серафимный Шестикрыл
Member [заблокирован]

Откуда: С луны свалился
Сообщений: 2922
Mastack1
Однако... Вечно я опаздываю.


Здесь не забег на 100 метров.

Вы про конструкцию 'cache' ? Ну это понятно (если документацию прочесть). Мне непонятно желание некоторых любой ценой обеспечивать "непрерывность ряда".


Нет, батенька, это про то, что sequence - ресурс, блокируемый на время обращения к нему, а не в течение transaction.
И это тоже понятно, если документацию прочесть.
27 авг 08, 12:59    [6114320]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Mimika
Member

Откуда:
Сообщений: 21
Jannny
Mimika
semenar
автор
не знаю.
Куда команды вводите???
в эдитор
Нда, разговор тот ещё

Ладно Бог с Вами - ввдеите в свой "эдитор" запрос:
select * from user_errors where name = 'ИМЯ ВАШЕГО ТРИГГЕРА БОЛЬШИМИ БУКВАМИ' order by position


триггер не сознан! какие там могут быть ошибки?
27 авг 08, 12:59    [6114324]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
В смысле:
Jannny
select * from user_errors where name = 'ИМЯ ВАШЕГО ТРИГГЕРА БОЛЬШИМИ БУКВАМИ' order by sequence
27 авг 08, 12:59    [6114326]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Серафимный Шестикрыл
Member [заблокирован]

Откуда: С луны свалился
Сообщений: 2922
Mimika

в эдитор


Вы, батенька, давно из циркового училища ?

P.S. С таким "багажом" и умением "учиться" вам бы не надо за Oracle браться,
вредно это (для Oracle).
27 авг 08, 13:00    [6114331]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Mimika
триггер не сознан! какие там могут быть ошибки?
А Вы попробуйте :)
ЗЫ: Если, конечно, Вы не вводите команды в Нотепаде, например :)
27 авг 08, 13:01    [6114333]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
C#C++
Member [заблокирован]

Откуда: Суровые северные земли
Сообщений: 2636
Mimika
Mastack1
create sequence tablename_seq
minvalue 1
maxvalue 2000000000
start with 1
increment by 1;

create trigger before_insert_tablename
  before insert on tablename
  for each row
begin
  select tablename_seq.nextval into :new.id from dual;
end before_insert_ssr;

А вообще-то неплохо документацию прочесть для начала, а не задавать детские вопросы.


Писала тоже самое-ничего не работает. триггер даже не создается и не выдает сообщения об ошибке=( и документацию я читала...
Честно говоря, у меня такой вариант тоже не работал на 10g XE. Пришлось обьявлять в триггере переменную типа number, в нее получать значение из последовательности, а потом присваивать это значение из переменной в :new.id.

Только не смейтесь
27 авг 08, 13:02    [6114347]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Mimika
Member

Откуда:
Сообщений: 21
Серафимный Шестикрыл
Mimika

в эдитор


Вы, батенька, давно из циркового училища ?

P.S. С таким "багажом" и умением "учиться" вам бы не надо за Oracle браться,
вредно это (для Oracle).


не умничай.не тебе судить о моем умении учиться. я совсем недолго этим занимаюсь. и свои советы прибереги для кого-нибудь другого
27 авг 08, 13:04    [6114361]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Mimika
Member

Откуда:
Сообщений: 21
Jannny
Mimika
триггер не сознан! какие там могут быть ошибки?
А Вы попробуйте :)
ЗЫ: Если, конечно, Вы не вводите команды в Нотепаде, например :)


очень остроумно! молодец! я уже пробовала-пустая строка
27 авг 08, 13:07    [6114379]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Mastack1
Member

Откуда:
Сообщений: 52
Jannny
Ну вообще-то и без кеширования более одной записи дырки возможны :) Просто с cache > 1 их размер может за раз увеличиваться :)

Ну... да. :) Всегда забываю про rollback и пр. Rollback - зло. :)
27 авг 08, 13:07    [6114383]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать триггер!!!  [new]
Серафимный Шестикрыл
Member [заблокирован]

Откуда: С луны свалился
Сообщений: 2922
Mimika

не умничай.не тебе судить о моем умении учиться. я совсем недолго этим занимаюсь. и свои советы прибереги для кого-нибудь другого




Бедное Блондинко, бедные работодатели...
27 авг 08, 13:08    [6114390]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / Oracle Ответить