作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 postgresql 表中有 id 列和 position 列。我想定位是自动递增的,所以我添加了 position 使用 serial 数据类型:ALTER TABLE tbl ADD COLUMN position serial;
id name position
------- ------- -------
1 S4 4
2 S2 2
3 S3 3
4 S1 1
问题是,当我尝试创建新对象时出现以下错误:org.postgresql.util.PSQLException:错误:PSQLException:错误:“位置”列中的空值违反非空
如何设置position列自动递增?
我的普通对象:
public class Stg {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@SequenceGenerator(name = "sequenceGenerator")
private Long id;
@NotNull
@Size(max = 20)
@Column(name = "name", length = 20, nullable = false)
private String name;
private Integer position;
最佳答案
第一个你需要创建序列:
CREATE SEQUENCE sys_sequence_name START -9223372036854775808 MINVALUE -9223372036854775808 MAXVALUE 9223372036854775807;
然后创建表,但在声明行参数后添加
CREATE TABLE table_name (
id bigserial primary key,
var_with_seq bigint not null default nextval('sys_sequence_name')
nextval('sys_sequence_name') - 这将使用您创建的序列。
关于java - 如何在postgresql中设置与id不同的自动增量字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54343860/
我是一名优秀的程序员,十分优秀!