Я использую таблицу оракула. Давайте представим, что у меня есть простая таблица, которая имеет имена и datetimestamps:Колонка Oracle на основе другого столбца
Name Time
--- ---
joe 01JAN1970:00:00:01
jane 04MAR2010:20:55:11
julie 22DEC1984:11:11:11
Я хочу добавить третий столбец. Назовем это датой. Я хочу урезать время.
Name Time Date
--- --- ---
joe 01JAN1970:00:00:01 01JAN1970
jane 04MAR2010:20:55:11 04MAR2010
julie 22DEC1984:11:11:11 22DEC1984
Это может быть сделано достаточно легко с обновлением. Хитрость заключается в том, если кто-то обновляет время Жюли, я хочу ее Дата автоматического обновления, а также:
Name Time Date
--- --- ---
joe 01JAN1970:00:00:01 01JAN1970
jane 04MAR2010:20:55:11 04MAR2010
julie 02OCT1999:22:22:22 02OCT1999
Есть простой способ сделать это с помощью Oracle 11G? Можно ли настроить триггер для обновления другого столбца в строке при изменении определенного столбца?
Edit: ясность в примере
Я бы не сохранил его в таблице вообще, просто добавьте его в свой запрос, когда вы получите доступ к нему или поместите его в виде. – Jesse
Простой ответ на ваш вопрос - «да». Много информации об этом, если вы ищете «update on trigger». И комментарий 2-го Джесси - нет необходимости в 2-м столбце, если все, что он делает, повторяет столбец «Время» в другом формате. – dispake
Я действительно не согласен с тем, что нет причин иметь второй столбец. Я много раз обнаружил, что гораздо сложнее запросить и намного медленнее получить результаты, если вы пытаетесь получить записи из столбца DATETIME, находящиеся в пределах определенного диапазона дат. Например, если вы хотите получить все записи с 1 января 1970 года, если у вас есть второй столбец DATE, запрос намного проще, без необходимости предложения BETWEEN, и вы можете поместить индекс в столбец DATE, чтобы он быстрее получить результаты тоже. Индекс DATETIME имеет мало значения, если почти все записи имеют уникальные значения. – Jim