5°C
завтра: 6°C
Погода в Перми
5°C
утром2°C
днем10°C
завтра6°C
Подробно
 63,96
−0.1086
Курс USD ЦБ РФна 20 апреля
63,9602
−0.1086
 71,92
−0.3208
Курс EUR ЦБ РФна 20 апреля
71,9232
−0.3208
PRM.Форум /Компьютеры Интернет Связь / Программирование /

Узнать дату появления записи в таблице SQL

  • activist

    Сообщений: 314

    Есть таблица в базе данных ORACLE 8i, есть таблица в которую помещаются записи, НО нет столбца когда запись была туда записана. Так вот очень хотелось бы знать есть ли способ всетаки узнать? Собственно хотелось бы посчитать сколько записей было добавлено за 2006 год.

  • lex3002

    Анонимный пользователь

    Напрямую никак. Только косвенно, и то не 100%, но попытаться можно.
    Если есть другие таблицы где есть даты, и если для генерации из id использовалась одна последовательность.

  • Господин Уэф!

    Анонимный пользователь

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

  • guru

    Сообщений: 8043

    В ответ на: Во все таблицы добавить поля
    Во все точно не стоит (справочники и пр.), токо в ключевые таблицы. Так будет ясно кто последний вставлял/изменял строчку.

    Для полного контроля всех операций: вставка/изменение/удаление создается отдельная таблица, с количеством полей как в контролируемой, после любой операции триггером заносятся строка после операции, и заполняется два дополнительных поля: дата (таймштамп) и тип операции (например I, U, D). Так можно контролировать абсолютно все изменения. Делается на 1-2 самых важных таблиц, изменения которых несет большие потери для бизнеса.

    Еще повторюсь, что делать нужно аккуратно, так как это дополнительные тормоза, но иногда это многократно окупаются. Делается это конечно на триггере, так как он быстрее хранимой процедуры, второе он обязательно выполнится! Ну и разумеется доступ на изменение этого триггера и таблицы куда пишутся изменения только админ базы должен иметь.

    "Самый мудрый внешне во всём подобен самому глупому", народная китайская мудрость.

  • guru

    Сообщений: 8043

    В ответ на: и заполняется два дополнительных поля:
    Забыл, поправляюсь 3 поля, еще логин юзера. Ну и на вставку и изменения отрабатывает триггер после операции, на удаление до.

    "Самый мудрый внешне во всём подобен самому глупому", народная китайская мудрость.

  • member

    Сообщений: 78

    Чтобы в таблицу автоматом добавлялась дата вставки записи не обязательно вешать триггер на insert, достаточно на этапе создания таблицы сделать следующее:
    Create table ...
    (
    CDate DATE DEFAULT SYSDATE NOT NULL,
    ...
    )

    Исправлено пользователем dba (31.01.07 15:42)

Записей на странице:

Перейти в форум

Модератор: