Introducing our new eBook: "Best Practices for Optimizing Postgres Query Performance"Download Now

U116: INSERT has more expressions than target columns

Category: Application / User Errors
SQLSTATE: 42601 (Class 42 — Syntax Error or Access Rule Violation: syntax_error)
Urgency: low

Example Postgres Log Output:

ERROR: INSERT has more expressions than target columns at character 341
STATEMENT: INSERT INTO x(y) VALUES (1, 2)

Explanation:

In the case of this log event, you specified the wrong number of columns in the target list part of an INSERT statement, or passed in too many/not enough values per row.

For example, you might have sent this:

INSERT INTO my_table (column_a, column_b) VALUES (1,2,3), (4,5,6);

Instead of this:

INSERT INTO my_table (column_a, column_b, column_c) VALUES (1,2,3), (4,5,6);

This typically occurs due to a bug in your ORM-related logic, or when you manually construct the SQL for INSERT statements.

Recommended Action:

Fix the syntax generated by your application code or ORM.

Learn More:


Couldn't find what you were looking for or want to talk about something specific?
Start a conversation with us →