Thread: Multiple insert
Hi,
I am getting errors trying to insert multiple records in single statement in table like this
CREATE TABLE "Lookup"."CNEnum1"
(
"Id" integer NOT NULL,
"Description" character varying(50),
CONSTRAINT "PK_Lookup_CNEnum1 " PRIMARY KEY ("Id")
)
WITH (
OIDS=FALSE
);
INSERT INTO "Lookup"." CNEnum1"(" Id ","Description")VALUES((1::integer,'Desc1'::varchar) ,(2::ineger,''Desc2'::varchar))
I have tried various versions of sql statement. With field casting and without casting. Both work when a single record is inserted but with multiple records the same error is reported.
ERROR: column "Id" is of type integer but expression is of type record
LINE 1: ... CNEnum1"("Id","Description")VALUES((1::int,'D...
^
HINT: You will need to rewrite or cast the expression.
********** Error **********
ERROR: column "Id" is of type integer but expression is of type record
SQL state: 42804
Hint: You will need to rewrite or cast the expression.
Character: 73
Any suggestion would be greatly welcomed! And thank you in advance.
Kind Regards
Farjad
Hi,
I am getting errors trying to insert multiple records in single statement in table like this
CREATE TABLE "Lookup"."CNEnum1"
(
"Id" integer NOT NULL,
"Description" character varying(50),
CONSTRAINT "PK_Lookup_CNEnum1 " PRIMARY KEY ("Id")
)
WITH (
OIDS=FALSE
);
INSERT INTO "Lookup"." CNEnum1"(" Id ","Description")VALUES((1::integer,'Desc1'::varchar) ,(2::ineger,''Desc2'::varchar))
I have tried various versions of sql statement. With field casting and without casting. Both work when a single record is inserted but with multiple records the same error is reported.
ERROR: column "Id" is of type integer but expression is of type record
LINE 1: ... CNEnum1"("Id","Description")VALUES((1::int,'D...
^
HINT: You will need to rewrite or cast the expression.
********** Error **********
ERROR: column "Id" is of type integer but expression is of type record
SQL state: 42804
Hint: You will need to rewrite or cast the expression.
Character: 73
Any suggestion would be greatly welcomed! And thank you in advance.
Kind Regards
Farjad
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
On 09/19/2015 11:31 AM, FarjadFarid(ChkNet) wrote: > Hi, > > I am getting errors trying to insert multiple records in single > statement in table like this > > CREATE TABLE "Lookup"."CNEnum1" > > ( > > "Id" integer NOT NULL, > > "Description" character varying(50), > > CONSTRAINT "PK_Lookup_CNEnum1 " PRIMARY KEY ("Id") > > ) > > WITH ( > > OIDS=FALSE > > ); > > INSERT INTO "Lookup"." CNEnum1"(" Id > ","Description")VALUES((1::integer,'Desc1'::varchar) > ,(2::ineger,''Desc2'::varchar)) > > I have tried various versions of sql statement. With field casting and > without casting. Both work when a single record is inserted but with > multiple records the same error is reported. > > ERROR: column "Id" is of type integer but expression is of type record > > LINE 1: ... CNEnum1"("Id","Description")VALUES((1::int,'D... > > ^ > > HINT: You will need to rewrite or cast the expression. > > ********** Error ********** > > ERROR: column "Id" is of type integer but expression is of type record > > SQL state: 42804 > > Hint: You will need to rewrite or cast the expression. > > Character: 73 > > Any suggestion would be greatly welcomed! And thank you in advance. http://www.postgresql.org/docs/9.4/interactive/sql-insert.html To insert multiple rows using the multirow VALUES syntax: INSERT INTO films (code, title, did, date_prod, kind) VALUES ('B6717', 'Tampopo', 110, '1985-02-10', 'Comedy'), ('HG120', 'The Dinner Game', 140, DEFAULT, 'Comedy'); so: INSERT INTO "Lookup"." CNEnum1"(" Id","Description") VALUES (1::integer,'Desc1'::varchar) ,(2::ineger,''Desc2'::varchar); > > Kind Regards > > Farjad > -- Adrian Klaver adrian.klaver@aklaver.com
On 09/19/2015 11:31 AM, FarjadFarid(ChkNet) wrote: > Hi, > > I am getting errors trying to insert multiple records in single > statement in table like this > > CREATE TABLE "Lookup"."CNEnum1" > > ( > > "Id" integer NOT NULL, > > "Description" character varying(50), > > CONSTRAINT "PK_Lookup_CNEnum1 " PRIMARY KEY ("Id") > > ) > > WITH ( > > OIDS=FALSE > > ); > > INSERT INTO "Lookup"." CNEnum1"(" Id > ","Description")VALUES((1::integer,'Desc1'::varchar) > ,(2::ineger,''Desc2'::varchar)) > > I have tried various versions of sql statement. With field casting and > without casting. Both work when a single record is inserted but with > multiple records the same error is reported. > > ERROR: column "Id" is of type integer but expression is of type record > > LINE 1: ... CNEnum1"("Id","Description")VALUES((1::int,'D... > > ^ > > HINT: You will need to rewrite or cast the expression. > > ********** Error ********** > > ERROR: column "Id" is of type integer but expression is of type record > > SQL state: 42804 > > Hint: You will need to rewrite or cast the expression. > > Character: 73 > > Any suggestion would be greatly welcomed! And thank you in advance. Forgot to complete the explanation. VALUES has its own meaning: http://www.postgresql.org/docs/9.0/static/sql-values.html So: test=> VALUES (1, 2), (3,4); column1 | column2 ---------+--------- 1 | 2 3 | 4 (2 rows) test=> VALUES ((1, 2), (3,4)); column1 | column2 ---------+--------- (1,2) | (3,4) (1 row) > > Kind Regards > > Farjad > -- Adrian Klaver adrian.klaver@aklaver.com