Skip to content
Advertisement

cannot get simple PostgreSQL insert to work

I’m trying to do a simple insert into a postgres table, but am getting an error that the value I’m trying to insert is being interpreted as a column name

Where id is set up to be the primary key, and auto increment, and not null. Those are the boxes I ticked when I set up the table in phpPgAdmin.

I’m getting this error though:

I’ve put my table name in double quotes, as I’ve read here I should.

And used DEFAULT to auto-increment the id as I’ve read here I should.

Any ideas? Thanks!

Advertisement

Answer

Use 'auto dealer' instead. PostgreSQL interprets " as being quotes for identifiers, ' as being quotes for strings.

Also:

  • If this is a new project, just don’t use mixed case tables; it is a source of frustration later. Instead of being able to use any case in your SQL statements, you must both quote the identifier name and get the case correct.

  • There is no need to specify id/DEFAULT, you’re asking it to do what it would have done already. I haven’t met a DBMS that requires you to include columnName/DEFAULT if you want it to put the default value in the column, so I don’t think this extra KV pair is going to make what is happening clearer to anyone reading your code later.

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement