Report this

What is the reason for this report?

Why is my spring boot app not able to create table with _seq name?

Posted on September 8, 2025

Getting error:

Error executing DDL “create table reading_day_seq (next_val bigint) engine=InnoDB” via JDBC [Unable to create or change a table without a primary key, when the system variable ‘sql_require_primary_key’ is set. Add a primary key to the table or unset this variable to avoid this message. Note that tables without a primary key can cause performance problems in row-based replication, so please consult your DBA before changing this setting.]

The code works on my local MySQL instance.

Do I need to change a setting? (sql_require_primary_key)

If so, how?

Thank you for any assistance.



This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Hi there,

On DigitalOcean Managed MySQL, sql_require_primary_key is enabled by default to avoid issues with replication and performance. That’s why your create table reading_day_seq (next_val bigint) fails, it doesn’t have a primary key.

You’ve got two options:

  1. You can add a primary key to your sequence table, e.g.:

    create table reading_day_seq (
      id int auto_increment primary key,
      next_val bigint
    ) engine=InnoDB;
    
  2. Or you could reconfigure the setting yourself if you really need to disable it. You can do that in the doctl CLI or via API: how to reconfigure Managed MySQL.

Most people would go with option 1, since adding a PK is the safer long-term fix.

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.