postgresql insert multiple rows - fail
I'm using PostgreSQL 8.1.11.
And I'm losing my mind. Why can I not use a basic SQL statement as INSERT?
I provide:
INSERT INTO the_leads_details ( id, lead_id, question_id, i_value, c_value ) VALUES
( 1, 1, 1, NULL, '4500' ), ( 2, 1, 2, 1, NULL );
^ this comma is a problem
What I am missing? This seems like a basic SQL INSERT statement to insert multiple rows. Is my problem related to my PostgreSQL version?
开发者_如何转开发I am inserting a lot of rows and I am looking to optimize INSERT multiple rows instead of placing several INSERTs.
Multi-row INSERT syntax is not supported in PostgreSQL 8.1, you need to upgrade to 8.2 or newer (and if you upgrade today, you really should upgrade to 8.4, not 8.2!)
Another reason is, as Frank mentioned in a comment, that version 8.1 will go end-of-life in November, so it's really time to start investigating upgrading.
I'm not sure Postgresl 8.1 supports multiple rows in VALUES. The syntax is:
INSERT INTO table [ ( column [, ...] ) ]
{ DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) | query }
http://www.postgresql.org/docs/8.1/static/sql-insert.html
I know it's an old thread but, this will work:
INSERT INTO the_leads_details ( id, lead_id, question_id, i_value, c_value ) (
SELECT 1, 1, 1, NULL, '4500'
UNION SELECT 2, 1, 2, 1, NULL
);
The syntax is correct, are you sure that the problem is in the comma?
精彩评论