Sequence does not exist when it does - Postgres/Spring Boot
Solution 1
Here is insight.
ERROR: sequence "user_id_seq" does not exist
It mean your sequence either not exist in database OR the user doesn't has permission to access it.
Solution:
- Check
user_id_seq
in database by command\ds
- Grant access on sequence to specific user.
GRANT ALL ON ALL SEQUENCES IN SCHEMA schema_name TO user_name;
Solution 2
Put database-specific escape-characters ( " in postgres) around the name of the sequence-name.
The name of the sequence has been changed by the driver. This sometimes happens because the Driver thinks the db-server is case-insensitive but the db-server is case-sensitive.
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TEACHER")
@SequenceGenerator(name = "TEACHER", sequenceName = "\"Teahcer_pkey\"")
@Column(name = "id", nullable = false)
Solution 3
Make sure your search_path is set to the schema that the sequence belongs to. Even if the table in question is schema-qualified, the search_path must also be set appropriately.
ion20
Updated on June 19, 2022Comments
-
ion20 about 1 year
I am writing a Spring Boot web-app and using a Postgres db to persist my data. I created a table in Postgres using
create table user (id bigserial primary key not null, name text not null;
and identified itssequence_name
by looking at the schema (in this case, it isuser_id_seq
). Then, in myUser
entity class in Spring Boot, I added the following:@Entity @Table(name = "user") public class User implements Serializable { @Id @SequenceGenerator(name = "user_local_seq", sequenceName = "user_id_seq", allocationSize = 1) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_local_seq") private Long id; ...
making sure that the
sequenceName
matches what I saw earlier. Now when I start my spring boot app, I am able to successfully boot it but I get the following "error" in the trace:main] org.hibernate.tool.hbm2ddl.SchemaExport : ERROR: sequence "user_id_seq" does not exist
I killed the app and started it again and this time, I got:
main] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000389: Unsuccessful: drop sequence user_id_seq main] org.hibernate.tool.hbm2ddl.SchemaExport : ERROR: sequence "user_id_seq" does not exist
What does this mean? Am I missing something? Any help/insight is appreciated.
-
Adrian Hartanto almost 6 yearsHope this insight help you. if this answer help you. please upvote or atleast mark as answer. Thank you. we can discuss more in comment section if you want.