Создать последовательность в базе данных h2 - PullRequest
0 голосов
/ 08 мая 2020

Я хочу создать последовательность в базе данных h2 для указанного ниже объекта

public class Label {

  @Id
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "label_sequence")
  @SequenceGenerator(name = "label_sequence", sequenceName = "label_sequence", allocationSize = 100)
  private Long id;

  private String name;

  private String value;
}

Ниже приведена команда sql, которую я выполняю

CREATE SEQUENCE label_sequence
  START WITH 1
  INCREMENT BY 1
  MINVALUE 1;

Я получаю следующую ошибку :

Syntax error in SQL statement "CREATE SEQUENCE LABEL_SEQUENCE
  START WITH 1
  INCREMENT BY 1
  MINVALUE[*] 1 "; SQL statement:
CREATE SEQUENCE label_sequence
  START WITH 1
  INCREMENT BY 1
  MINVALUE 1 [42000-140]

Приведенный ниже запрос работает

CREATE SEQUENCE label_sequence
  START WITH 1
  INCREMENT BY 1;

Но я получаю значения идентификатора меньше 1 из-за размера выделения, я думаю.

Как я могу сделать убедитесь, что значения ID никогда не go ниже 1?

1 Ответ

0 голосов
/ 08 мая 2020

Вы используете очень старую версию базы данных H2, H2 1.2.140 был выпущен 10 лет назад go. Вам нужно использовать какую-нибудь современную версию, которая знает этот синтаксис.

Если вам действительно нужно использовать такую ​​версию archai c, просто удалите предложение MINVALUE, ваша последовательность будет генерировать значения 1, 2,… 9223372036854775807, так что у вас будет достаточно времени до переполнения. Вы можете добавить ограничение CHECK в свой столбец для большей безопасности, если вы используете sh.

...