powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / как определить rowid в тригере
29 сообщений из 29, показаны все 2 страниц
как определить rowid в тригере
    #35997090
orion700
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть табла
t1 (
id
name)

могу написать
select rowid,id,name from t1

а вот как в триггере for each rows определить rowid для которой сработал этот триггер?

Informix 7 какойто-там
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #35997377
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700
select rowid,id,name from t1
а вот как в триггере for each rows определить rowid для которой сработал этот триггер?
НЕ НУЖНО ИСПОЛЬЗОВАТЬ rowid !
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #35998076
orion700
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
великолепный ответ, сразу видно проффесиОНАЛ

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

необходимо сделать журнал изменений данных в таблице
по аналогии с Oracle materialized view log

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

Есть альтернативные решения того, что "необходимо сделать.." - поделитесь
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #35998400
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700великолепный ответ, сразу видно проффесиОНАЛ

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

необходимо сделать журнал изменений данных в таблице
по аналогии с Oracle materialized view log

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

Есть альтернативные решения того, что "необходимо сделать.." - поделитесь
Сразу виден чайник. Вместо того чтобы с самого начала спросить как пройти в библиотеку, спрашивает который час.

В триггере у вас и так есть вся строка.
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #35998515
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марио Пьюзо "Крёстный Отец"Бывают на свете люди, которые ходят и просят - прямо-таки требуют, - чтобы их убили. Ты сам, наверное, замечал. Они скандалят на стадионе, набрасываются на тебя с кулаками, если ты оставил царапину на крыле их машины, оскорбляют первого встречного, не утруждая себя вопросом, на что этот человек способен. Они топают по земле, вопя: "Вот он я! Убейте меня!" И в желающих, как правило, нет недостатка. Мы каждый день читаем про это в газетах. Естественно, что люди этой породы приносят и другим много вреда.
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #35999174
orion700
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денис,

Вы совершенно правы, я информикс не знаю совершенно (и с удовольствием бы не знал и далее)
Относительно вашей реплики о том, что в триггере мне доступны old и new значения всех полей я знаю
Но мне не нужны они, мне нужна однозначная идентификация строки таблицы над которой произошла операция.

Все поняли, что я чайник, но именно поэтому я и обратился к Вам гуру Информикса.
И что я получаю, один только поучительные советы про жизнь.
Неужели нет тут истинных....
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #35999351
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700Журавлев Денис,

Вы совершенно правы, я информикс не знаю совершенно (и с удовольствием бы не знал и далее)
Относительно вашей реплики о том, что в триггере мне доступны old и new значения всех полей я знаю
Но мне не нужны они, мне нужна однозначная идентификация строки таблицы над которой произошла операция.

Все поняли, что я чайник, но именно поэтому я и обратился к Вам гуру Информикса.
И что я получаю, один только поучительные советы про жизнь.
Неужели нет тут истинных....

Истинных полно, только они не помогают тем, кто с удовольствием не хочет знать то о чем спрашивают. Те кто не хочет знать, платят деньги и получают результат.

Если по существу, после того как вы удалите некоторые записи, и после добавления новых записей ваши старые rowid старых записей могут принадлежать
совсем другим новым записям.
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #35999404
orion700
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
onstat-
Если по существу, после того как вы удалите некоторые записи, и после добавления новых записей ваши старые rowid старых записей могут принадлежать
совсем другим новым записям.

Наконец то по существу, я это знаю и меня это устраивает.

А по поводу вопроса: абстрогируйтесь от моей цели, вопрос короткий и полностью сформированый
"как в триггере получить rowid записи над которой произошла операция"

и мне хотельсь бы найти человека знающего ответ именно на этот вопрос,
мне не нужны, на этом этапе, коментарии типа "НЕ ИСПОЛЬЗУЙ..."
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #35999466
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700
мне не нужны, на этом этапе, коментарии типа "НЕ ИСПОЛЬЗУЙ..."
Перефразируя onstat-: не нужны комментарии - плати деньги, а не пиши на общественный форум...
Любой модератор тот комментарий за оффтоп не посчитает... Хотя, возможно, мой - запросто...
Читай правила...
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #35999542
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойorion700
мне не нужны, на этом этапе, коментарии типа "НЕ ИСПОЛЬЗУЙ..."
Перефразируя onstat-: не нужны комментарии - плати деньги, а не пиши на общественный форум...
Любой модератор тот комментарий за оффтоп не посчитает... Хотя, возможно, мой - запросто...
Читай правила...

+1. ( жирный)

Суть форума не только в том, что бы помочь конкретному человеку, для этого можно нанять консалтинг за деньги, или обратиться в ранее оплаченный саппорт, результат будет более качественный особенно с подходом "не хочу знать".

а в том что бы показать сообществу как могут решаться определенные прикладные задачи.
Здесь общаются люди желающие знать.
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #35999574
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700
поясню, в таблице нет первичного ключа.
сделать не могу, система унаследована и не позволяют этого сделать.

необходимо сделать журнал изменений данных в таблице
по аналогии с Oracle materialized view log

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

Без этого комментария отвечать точно было бы очень тяжело...

orion700
Есть альтернативные решения того, что "необходимо сделать.." - поделитесь

Странности: триггер написать дают, а поле SERIAL добавить не дают? Значит клиент без переделок не может работать - типа BDE или ещё чего...
В такой ситуации логируйте в триггере запись полностью : и старую версию и новую
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #35999626
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700мне нужна однозначная идентификация строки таблицы над которой произошла операция.
зачем?
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36000480
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700есть табла
t1 (
id
name)

могу написать
select rowid,id,name from t1

а вот как в триггере for each rows определить rowid для которой сработал этот триггер?

Informix 7 какойто-там


если вас не смущает, что rowid может переприсваиваться новой записи, то следовательно у вас нет удаления из таблицы. Значит, rowid растет монотонно. Значит, в SP внутри триггера можно получить настоящее rowid выполнив SELECT max(rowid) from t1 where id = new_id and name = new_name.
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36000920
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегаллоorion700есть табла
t1 (
id
name)

могу написать
select rowid,id,name from t1

а вот как в триггере for each rows определить rowid для которой сработал этот триггер?

Informix 7 какойто-там


если вас не смущает, что rowid может переприсваиваться новой записи, то следовательно у вас нет удаления из таблицы. Значит, rowid растет монотонно. Значит, в SP внутри триггера можно получить настоящее rowid выполнив SELECT max(rowid) from t1 where id = new_id and name = new_name.
rowid может меняться при update, если строка не влезла на старое место
а если триггер у него не на insert, то max(rowid) может быть и не от той строки rowid
и вообще мне непонятно, для чего очень надо различить записи, которые различить невозможно
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001162
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тан
rowid может меняться при update, если строка не влезла на старое место


Дополнение :
У строки на протяжении некоторого времени может быть 2 rowid.
Один непосредственно rowid строки, другой ссылка на него.

Изменение rowid, появление ссылки и ее удаление не ловится никакими триггерами.
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001191
orion700
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тан
rowid может меняться при update, если строка не влезла на старое место
а если триггер у него не на insert, то max(rowid) может быть и не от той строки rowid
и вообще мне непонятно, для чего очень надо различить записи, которые различить невозможно

я правильно понял что:
момент времени 1 - имеем запись (rowid,id,name) = ( 257 ,1,'test')
момент времени 2 - update t set name='бла-бла-бла' where id=1
момент времени 3 - можем иметь запись (rowid,id,name) = ( xxx ,1,'бла-бла-бла')

то-есть Инф переместил запись, хотя не важно переместил он её или нет, но действительно у той самой записи сменился rowid.
Это действительно так?
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001220
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700есть табла
t1 (
id
name)

что вы хотите иметь в вашем матвью?
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001230
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700Тан
rowid может меняться при update, если строка не влезла на старое место
а если триггер у него не на insert, то max(rowid) может быть и не от той строки rowid
и вообще мне непонятно, для чего очень надо различить записи, которые различить невозможно

я правильно понял что:
момент времени 1 - имеем запись (rowid,id,name) = ( 257 ,1,'test')
момент времени 2 - update t set name='бла-бла-бла' where id=1
момент времени 3 - можем иметь запись (rowid,id,name) = ( xxx ,1,'бла-бла-бла')

то-есть Инф переместил запись, хотя не важно переместил он её или нет, но действительно у той самой записи сменился rowid.
Это действительно так?

По ходу да, причем на одной версии сервера при одинаковых условиях это может произойти, на другой нет.
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001246
orion700
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orion700,

1 вопрос
14 сообщений
и только в последнем и предпоследнем ответ на вопрос

так ли были необходимы те 12, что посередине

Хотя я из них я все же многое выяснил, например, что я чайнег в инхформихс
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001271
orion700
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денисчто вы хотите иметь в вашем матвью?

Да, собственно, хатю в инхформиксе реализовать аналог Oracle манвью логов которые на rowid а не на первичных ключах

планруется реплицировать эти логи в Oracle где используя их формировать состояния таблицы
на определенные моменты времени
например каждые 6 часов.

PS: подозреваю, сейчас начнется, а зачем вам это :)
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001302
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700orion700,

1 вопрос
14 сообщений
и только в последнем и предпоследнем ответ на вопрос

так ли были необходимы те 12, что посередине

Хотя я из них я все же многое выяснил, например, что я чайнег в инхформихс

На Ваш 1-й вопрос правильный ответ прозвучал во 2-ром сообщении.
Если бы Вы предварительно почитали правила форума, и как правильно задавать вопросы,
и следовали этим правилам то исчерпывающие ответы и дополнения были
бы в 5 первых сообщениях.
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001306
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700,

на самом деле такое мат вью в оракле будет делать
delete from mat_view_table;
insert into mat_view_table select * from source_table;
commit;
делайте тоже самое.
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001410
orion700
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денисorion700,

на самом деле такое мат вью в оракле будет делать
delete from mat_view_table;
insert into mat_view_table select * from source_table;
commit;
делайте тоже самое.

Денис мне не нужны матвъю мне нужны матвъю логи!!!
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001485
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700Журавлев Денисчто вы хотите иметь в вашем матвью?

Да, собственно, хатю в инхформиксе реализовать аналог Oracle манвью логов которые на rowid а не на первичных ключах



Хотите делайте, никто вам этого не запрещает,

Совет 1.
Получайте rowid из первичного ключа ( без чтения таблицы)
там будет rowid записи которая была вставлена,
если запись была сервером перемещена, то это будет уже ссылка на новый rowid.

Совет 2.
Как достать rowid из превичного ключа смотрите и пишите свой датаблейд.

совет 3 .
Если запись была перемещена, и произойдет явная или неявная перестройка индекса
первичного ключа, то rowid разъедутся. Ваш датаблейд должен это учитывать.


Удачи.

з.ы.
Нет невыполнимых задач в любой постановке, есть недостаток ресурсов.
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001518
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700
Денис мне не нужны матвъю мне нужны матвъю логи!!!таблица большая? Сколько записей?
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001705
orion700
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[/quot]таблица большая? Сколько записей?[/quot]
все относительно, это необходимо сделать для нескольких таблиц
некоторые из них до десять миллионов записей содержат
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36001720
orion700
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orion700,

че такое датаблейд?

в общем согласен, прийдется погрузиться в Informix
народ дайте, плиз, ссылки надоку (желательно на русском, всеже он мой родной язык)
ссылок на сайты Informix-направленные

PS: офф-топ, но все-же
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36002057
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion700orion700,

че такое датаблейд?

в общем согласен, прийдется погрузиться в Informix
народ дайте, плиз, ссылки надоку (желательно на русском, всеже он мой родной язык)
ссылок на сайты Informix-направленные

PS: офф-топ, но все-же

Датаблейд это функционал расширяющий возможности мотора СУБД ( плагин ),
работает на уровне ядра СУБД, со всеми вытекающими достоитствами и недостатками.
Например можно повалить сервер напрочь.

Документации? которая поможет вам сделать все от и до на русском я думаю нет.

Начните поиск и изучение с
гугля


Углублятся придется суда .

Прежде чем приступать к работе сравните физику Oracle & Informix rowid,
я больше чем уверен, что прозрачного переноса rowid между этими СУБД
Вам не удастся получить.
...
Рейтинг: 0 / 0
как определить rowid в тригере
    #36002688
orion700
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
onstat-

Прежде чем приступать к работе сравните физику Oracle & Informix rowid,
я больше чем уверен, что прозрачного переноса rowid между этими СУБД
Вам не удастся получить.

Уже углубились, действительно в интересующей меня части ROWID Инфа не тоже самое что в Oracle
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Informix [игнор отключен] [закрыт для гостей] / как определить rowid в тригере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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