Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Как написать триггер на INSERT, чтобы в поле Nr изменяемой строки ставился порядковый номер записи?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных
Предыдущая тема :: Следующая тема  
Автор Сообщение
Takhir
Гость





СообщениеДобавлено: Вт Фев 11 2003 17:06    Заголовок сообщения: Как написать триггер на INSERT, чтобы в поле Nr изменяемой строки ставился порядковый номер записи? Ответить с цитатой

Как написать триггер на INSERT, чтобы в поле Nr изменяемой строки ставился порядковый номер записи?
Вернуться к началу
Valera
Гость





СообщениеДобавлено: Ср Фев 12 2003 07:22    Заголовок сообщения: А что такое "порядковый номер"? Как ты это себе представляешь? (+) Ответить с цитатой

если нужно однозначно идентифицировать запись, используй автоинкрементные поля.
Если есть поле просто с числом которое надо увеличивать, то можно

set nom = select max(nr) ftom ...

set nom=nom+1

update
set nr=nom

что-то типа такого
Вернуться к началу
Takhir
Гость





СообщениеДобавлено: Ср Фев 12 2003 10:22    Заголовок сообщения: Re: А что такое "порядковый номер"? Как ты это себе представляешь? (+) Ответить с цитатой

Estj tablica s polem neuporjado4ennogo ID (5,45,12...). Pri INSERT nado, 4tobi ID dobavljaemoj stroki bil na 1 boljshe maksimaljnogo ID iz vseh strok (naprimer, bili ID: 5,45,12,18,7,95,12 -> next ID: 96).
Вернуться к началу
Takhir
Гость





СообщениеДобавлено: Ср Фев 12 2003 10:42    Заголовок сообщения: a tak? Ответить с цитатой

Tak:

set cur_num = select max(good_id) from goodlist, inserted where goodlist.good_name = inserted.good_name

idet s o6ibkoj. V 4em problema?
Вернуться к началу
cpr



Зарегистрирован: 22.08.2002
Сообщения: 33
Откуда: Ростов-на-Дону

СообщениеДобавлено: Чт Фев 13 2003 10:48    Заголовок сообщения: Ну вы блин даете Ответить с цитатой

Внутри триггера нельзя модифицировать таблицу самого триггера. Другие сколько угодно.

Для этого в Оракле например существуют спец объекты sequence, а в INFORMIX тип serial .
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Takhir
Гость





СообщениеДобавлено: Чт Фев 13 2003 10:51    Заголовок сообщения: Re: Ну вы блин даете Ответить с цитатой

Xex. Odnako, daem i polu4aem. Vnutri triggera, kotorij nave6en na tablicu, MOZHNO menjatj dannie. Delo v tom, 4to u menja uzhe vse rabotaet. Po-tvoemu, na INSERT kak mne zabitj datu modifikacii v tu zhe stroku? o4enj legko. na to oni i triggeri Smile

Eto super DJ! Vse klassno rabotaet, ne nado mutitj vodu!
Вернуться к началу
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Вс Фев 16 2003 03:21    Заголовок сообщения: Про поля типа Autoincremet слыхал? Чё изобретать велосипед, если все уже придумано... (-) Ответить с цитатой

-
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Takhir
Гость





СообщениеДобавлено: Пн Фев 17 2003 13:48    Заголовок сообщения: Re: Про поля типа Autoincremet слыхал? Чё изобретать велосипед, если все уже придумано... (-) Ответить с цитатой

A esli ID v stolbce ne po porjadku??? 3,58,27...
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...