jdbc - Issue while call BEFORE trigger on postgresql -


i have jdbc client communicate postgresql database. jdbc create prepared statement insert data on table, @ moment of creation of query, client doesn't know field insert inside statement, , complete query i've write trigger fires before insert on table, find missing value, continue execute query. jdbc code:

string my_insert = "insert mytable values(?, ?, ?, ?, ?, ?)"; preparedstatement pstm = connection.preparestatement(my_insert); pstm5.setint(1, 2562); pstm5.setint(2, 22); pstm5.setint(3, 0); //unknown value, set 0 pstm5.setstring(4, "a string"); pstm5.setint(5, 0); //the other unknown value 

this trigger code:

create function perform_() returns trigger $mytrigger$  declare  vend varchar(20); pre numeric(10,2);  begin     select field3, field5 othertable id = new.field2 vend, pre;      new.field3 = vend;     new.field5 = pre;      return null; end; $mytrigger$ language plpgsql;  create trigger mytrigger before insert on mytable execute procedure perform_();  

when trigger fires have error:

exception: jdbcclass error: error: record "new" not assigned yet details: tuple structure of not-yet-assigned record indeterminate. select field3, field5 othertable id = new.field2 vend, pre; 

what mean? record new it's assigned can see jdbc code...

first, you've missed for each row in trigger declaration:

create trigger mytrigger before insert on mytable each row execute procedure perform_();  

second, have return new; if want record inserted table

see sql fiddle demo


Comments

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -