Укажите значение по умолчанию для столбца первичного ключа типа UUID в H2 Database Engine? - PullRequest
0 голосов
/ 05 сентября 2018

Этот SQL:

CREATE TABLE product_ ( 
    pkey_ UUID PRIMARY KEY
) ; 

… успешно создает таблицу.

Но я хочу, чтобы новые строки по умолчанию представляли собой UUId, сгенерированный RANDOM_UUID(), как показано на этом ответе .

CREATE TABLE product_ ( 
    pkey_ UUID PRIMARY KEY DEFAULT RANDOM_UUID() 
) ; 

Но это не с ошибкой:

org.h2.jdbc.JdbcSQLException: синтаксическая ошибка в операторе SQL "CREATE TABLE PRODUCT_ ( PKEY_ UUID ПЕРВИЧНЫЙ КЛЮЧ ПО УМОЛЧАНИЮ [*] RANDOM_UUID () ); "; ожидается" HASH, AUTO_INCREMENT, NOT, NULL, CHECK, REFERENCES, ,,) "; оператор SQL:

Какова причина и решение этой ошибки?

1 Ответ

0 голосов
/ 05 сентября 2018

Аргументы заказа

Порядок, в котором приводятся аргументы, имеет значение.

Как видно из документации по Определение столбца , синтаксическая диаграмма показывает, что DEFAULT должно отображаться перед PRIMARY KEY. Поменяйте местами эти две части.

CREATE TABLE product_ ( 
    pkey_ UUID DEFAULT RANDOM_UUID() PRIMARY KEY 
) ; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...