Как использовать UUID в качестве значения по умолчанию для колонки HSQLDB

Я использую HSQLDB для в тестах базы данных памяти, и я столкнулся с проблемами, используя UUID's в качестве первичных ключей. Я хочу, чтобы мой первичный ключ был произведен базой данных. Произведенный UUID не должен быть реальным uuid, он просто должен пойти в varchar колонку.

I've tried UUID function that should exists according to this documentation: http://hsqldb.org/doc/guide/builtinfunctions-chapt.html

alter table owner alter column id set default UUID();

Но это просто говорит, что UUID - неожиданный символ.

Какие-либо подсказки?

0
nl ja de

1 ответы

Можно использовать спусковой механизм для значений столбцов UUID.

CREATE TABLE OWNER ( ID BINARY(16) DEFAULT X'' PRIMARY KEY , VAL VARCHAR(10))
CREATE TRIGGER TRIG BEFORE INSERT ON OWNER REFERENCING NEW ROW AS NEW FOR EACH ROW SET NEW.ID = UUID();

Обратите внимание, что для колонки нужен дефолт, но этот дефолт переписан UUID ()

2
добавлено
Спасибо, это работает. Хотя "ОУНЕР РЕФЕРЕНКИНГ НЬЮ-РОУ КАК НОВАЯ" doesn' t работают если вы don' t удаляют слово РЯДА
добавлено автор palto, источник
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)