2014-12-07 1 views
1

В MySQL, можно определить столбец таблицы, значение которого постоянно обновляется менеджером баз данных:HSQLDB и оптимистическая блокировка

CREATE TABLE widgets (
    widget_id   INT NOT NULL, 
    widget_version TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
) 

Выше, в любое время получает создан новый [widgets] сущность, текущая временная метка используется для колонки version. И в любое время, когда запись или обновление происходит с этим объектом, система будет обновлять version (снова) текущую временную метку.

Есть ли способ сделать это в HSQLDB 2.3.x? Мой Google Fu и ознакомление с документами HSQLDB оказались надда.

+0

HSQLDB содержит исчерпывающую документацию, включающую то, что может быть помещено в ее фразу DEFAULT. Если вам нужна ссылка на него, вы можете найти ее в Интернете по адресу http://www.hsqldb.org/doc/2.0/guide/index.html – scottb

+0

Почему нисходящий поток без объяснения причин? Это обман? Если да, укажите ссылку на вопрос, это обман! В противном случае его [SSCCE] (http://sscce.org/) показывает усилия/исследования и предоставляет всю справочную информацию, необходимую для ответа на вопрос! – IAmYourFaja

ответ

-1

Я только что поговорил с Митчем Коннором, основателем и главным поддерживающим HSQLDB, на IRC, и, по-видимому, HSQLDB никогда не строился с целью управления оптимистичной блокировкой.

Митч рекомендовал вместо этого попробовать H2.

+0

Я поддерживаю HSQLDB и никогда не слышал о Митче Конноре! HSQLDB поддерживает оптимистичную блокировку, когда вы используете ее в режиме транзакции MVCC. – fredt

0

HSQLDB не поддерживает предложение update в выражении DEFAULT.

HSQLDB поддерживает триггеры для этой цели.

CREATE TRIGGER t BEFORE UPDATE ON wiget_version 
REFERENCING NEW AS newrow FOR EACH ROW 
BEGIN ATOMIC 
    SET newrow.widget_version = LOCALTIMESTAMP; 
END 

 Смежные вопросы

  • Нет связанных вопросов^_^