powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как получить Timestamp?
14 сообщений из 14, страница 1 из 1
Как получить Timestamp?
    #34486782
sq_deep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, есть ли в Информиксе дата и время модификации записи ?

Уверен, что есть.

Как мне его получить?
Все поиски тщетны. ROWID нашёл, а с timestamp-ом беда!

Только на вас осталась надежда...
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34486848
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из неопубликованного FAQ :)
Код: plaintext
1.
2.
3.
        --------------------------------------------------------------------------------------
        * Можно ли из системных таблиц узнать когда (точное время) последний раз производилось  
          обращение (выборка или обновление данных) в несистемных таблицах ?
        --------------------------------------------------------------------------------------
Нет. В системных таблицах такое время не хранится.
Для получения такой информации можно использовать информацию из аудита, или анализируя записи из логического журнала или добавляя соответствующие поля в пользовательские таблицы и заполняя их триггерами во время обращений.
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34486874
sq_deep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vasilis... Нет. В системных таблицах такое время не хранится... vasilis , вы убиваете мою последнюю надежду :(:(:(
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34487462
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisНет. В системных таблицах такое время не хранится.
Вот уж где стал бы искать в ПОСЛЕДНЮЮ очередь :)
Это информацию стоило бы искать в структуре хранения tablespace (а точнее, собственно строки)...
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34489081
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой vasilisНет. В системных таблицах такое время не хранится.
Вот уж где стал бы искать в ПОСЛЕДНЮЮ очередь :)
Это информацию стоило бы искать в структуре хранения tablespace (а точнее, собственно строки)...
И где же там искать, если эта структура известна и таких данных там никогда не было ?
А главное, зачем эта информация нужна ? Просто представить, сколько дурной работы надо будет делать серверу, чтобы _по каждой записи_ изменять timestamp... Они даже на странице общий timestamp для проверки целостности и то сделали обычным инкрементируемым int-ом, а не настоящей временной отметкой.
А если вдруг, кому то надо для прикладных целей сохранять такую информацию, то в этом ему прекрасно помогут триггеры, заодно можно будет увидеть и затраты на эту работу при массовых инсертах-апдейтах.
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34490889
sq_deep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за информацию, господа.
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34490978
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilis АнатоЛой[quot vasilis]Нет. В системных таблицах такое время не хранится.
Вот уж где стал бы искать в ПОСЛЕДНЮЮ очередь :)
Эту информацию стоило бы искать в структуре хранения tablespace (а точнее, собственно строки)...
Может я не так выразился... Я хотел сказать, что если такая информация в IDS и есть - то IMHO логичнее было бы подтверждение этому искать не в системных таблицах, а в структуре записи таблицы... И если её там нет - таки вроде остаётся только три вышеупомянутых варианта:
- логи
- аудит
- прикладное решение.
Хотя, если бы время модификация и было в структуре записи, как его оттуда выцарапать - это ещё одна проблема... :)

vasilis
И где же там искать, если эта структура известна и таких данных там никогда не было ?

Кому структура известна - у тех вопросов нет. А кто-то может не догадываться, что такая информация (о структуре) в принципе доступна. Я, например, не на 100% был уверен, что её там точно нет...

vasilis
А главное, зачем эта информация нужна ?

Ну вот бывает полезна в прикладных приложениях :)) Что, никогда не попадали в такую ситуацию?!
Не верю... :)

vasilis
Просто представить, сколько дурной работы надо будет делать серверу, чтобы _по каждой записи_ изменять timestamp...

Ну не надо по каждой... Вот rowid не для каждой же таблице можно получить - и ничего, не умерли :) Была бы опция такая для таблицы "Хранить для данной таблицы дату/время последней модификации каждой записи" - думаю, использовали бы...

vasilis
Они даже на странице общий timestamp для проверки целостности и то сделали обычным инкрементируемым int-ом, а не настоящей временной отметкой.

Хм... Тема топика, конечно, была про TimeStamp, но непосредственно в сообщении автор спрашивал про "дату и время" (хоть и расплывчато :). Неужели время с точностью до СЕКУНД так накладно 1) в ядре получить и 2) в заголовке строки сохранить? Для гуру вопрос может показаться риторическим, типа "Конечно, накладно", но у меня таких знаний пока нет...

vasilis
А если вдруг, кому то надо для прикладных целей сохранять такую информацию, то в этом ему прекрасно помогут триггеры, заодно можно будет увидеть и затраты на эту работу при массовых инсертах-апдейтах.

Не уверен что настолько сравнимы по затратам ресурсов две такие реализации:
1) на триггерах
и
2) в ядре СУБД...
А особенно памятуя про особенности извлечения текущего времени в SPL IDS...
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34490985
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон за неправильное первое цитирование в предыдущем посте...
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34491010
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В 11 версии будет для каждой строки поддерживаться такой timestamp
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34491088
Фотография sysmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikovВ 11 версии будет для каждой строки поддерживаться такой timestamp
Нормально.
А чем (или как) эту информацию можно будет получить?
И где эта информация будет храниться?
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34491130
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой vasilisА главное, зачем эта информация нужна ?
Ну вот бывает полезна в прикладных приложениях :)) Что, никогда не попадали в такую ситуацию?! Не верю... :)
Бывает полезно. Но это же не значит, что внутри сервера должно быть все, что может быть полезно (а может и не быть полезно или востребованно). Есть известный афоризм - "Идеально - это не тогда, когда уже нечего добавить, а когда уже нечего отнять". Мне этот афоризм импонирует, а вот разработчикам О. - наверное, нет :))
АнатоЛой vasilis
Просто представить, сколько дурной работы надо будет делать серверу, чтобы _по каждой записи_ изменять timestamp...
Ну не надо по каждой... Вот rowid не для каждой же таблице можно получить - и ничего, не умерли :) Была бы опция такая для таблицы "Хранить для данной таблицы дату/время последней модификации каждой записи" - думаю, использовали бы...
Согласен, как опция, возможно и была бы неплохой - добавлялся бы скрытый или видимый столбец, в котором стандартным SQL можно было бы читать данные. Только что мешает добавить самому такой столбец и поставить default = current для инсертов ?
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34491488
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для нового уровня изволяции LAST COMMITED DB2/Informix будут поддерживать такой столбец сами автоматически. Более подробно я еще не разбирался.
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34491574
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikovДля нового уровня изволяции LAST COMMITED DB2/Informix будут поддерживать такой столбец сами автоматически. Более подробно я еще не разбирался.Тогда это не будет реальными датой/временем.

Предположим время хранится с точностью до минуты.
Наша транзакция началась в 16:53, мы приходим за строкой в таблицу и видим время обновления 16:53 (на самом деле тут надо хранить не время обновления, но время начала обновившей ее транзакции (или запроса), но речь не об этом), и что делать? Брать эту строку или идти за ее предыдущим состоянием куда-то в сегменты отката?
Никакой точности никакого времени недостаточно для соблюдения ACID, необходим инкрементальный счетчик.
...
Рейтинг: 0 / 0
Как получить Timestamp?
    #34491817
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно. Надо изучать внимательнее. В одном из описаний видел про этот столбец.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как получить Timestamp?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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