【发布时间】:2021-11-05 14:31:40
【问题描述】:
我使用这个 SQL 脚本通过 Liquibase 生成测试数据。每次启动 Spring Boot 应用程序时都应该运行此脚本。
INSERT into tasks SELECT generate_series(1,355) AS id,
('Business name ' || generate_series(1,355)) AS business_name,
(select NOW() + (random() * (NOW() + '90 days' - NOW())) + '30 days') AS created_at,
left (md5(random()::text), 10) AS meta_title,
left (md5(random()::text), 10) AS status,
left (md5(random()::text), 10) AS title,
left (md5(random()::text), 10) AS task_type,
(select NOW() + (random() * (NOW() + '90 days' - NOW())) + '30 days') AS updated_at;
问题是当我多次运行脚本时出现此问题:
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "tasks_pkey"
Detail: Key (id)=(1) already exists.
我使用这个 Hibernate 配置来创建一个表:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, updatable = false, nullable = false)
private Long id;
是否可以在脚本运行时始终生成新的附加行?
【问题讨论】:
标签: sql postgresql hibernate