| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Oracle > If-then-else в триггерах, |
| Автор: zhefran 10.3.2010, 11:34 | ||||
| Перевожу таблици с MySQL в Oracle. Столкнулся с проблемой. Исходная таблица
В Oracle для ON UPDATE CURRENT_TIMESTAMP, нужно сделать триггер. Нашел такой код:
Но при этом триггере я немогу делать update для даты, так как запишется текушая, а не изменямое значение. Подскажите, пожалуйста, как мне изменить триггер, для реализации такой возможности. |
| Автор: ToshaCh 10.3.2010, 11:46 | ||
Может так? Если в стейтменте не указана дата, то будет sysdate, если указана, то собственно её и берём. |
| Автор: zhefran 10.3.2010, 12:07 |
| Спасибо за помощь! |
| Автор: Zloxa 10.3.2010, 14:00 |
| Нихрена не понятно. Тип http://msdn.microsoft.com/ru-ru/library/ms182776(SQL.90).aspx в M$ это вовсе не дата, а двоичные данные, которые характеризуют кагбе "версию" строки, и используется, обычно, для реализации стратегии оптимистического блокирования. Для тех же нужд, в оракле задуман псевдостолбец http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/pseudocolumns007.htm. И вот в этом контексте конструкция "DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP" применимая к этому столбцу выгдядит полной херней. Т.к. CURRENT_TIMESTAMP возвращает дату, которая якобы должна запиаться в счетчик, который ведет сам M$ |
| Автор: Fortop 10.3.2010, 14:09 |
Обращаю внимание |
| Автор: Zloxa 10.3.2010, 14:11 |
сорри. Не правильно прочел. Спасибо. |
| Автор: ToshaCh 10.3.2010, 14:13 |
Да, так пожалуй лучше. |