Adrian, your'e right, the real problem  is the slow insert,  I have   many
devices  reporting to the server and   saving  their state  each minute so
there is a moment where i  reach the limit of connections  and the monitor
device  send a exception and crash.


The table  grows a lot, current have more than 13,000,000 records, plus
have many indexes, that the reason why is slow to insert That's why i
 tried to use copy.



On Fri, Aug 12, 2016 at 9:43 AM, Adrian Klaver <adrian.kla...@aklaver.com>
wrote:

> On 08/12/2016 07:11 AM, Edmundo Robles wrote:
>
>> Hi!
>>  I hope you could help me...
>> I  tried to generate the next copy instruction  in a function:
>>
>> copy tablefoo (id_foo, foo_name, foo_lastname, foo_age) FROM stdin
>>  DELIMITER as  '|' ;
>> 12060157|John|Doe|33
>> \.
>>
>>
>> ** The commands to generate  the copy are:
>>     CREATE OR REPLACE FUNCTION insert_tablefoo(id integer, name varchar,
>> lastname varchar, age integer)
>>
>>     ... declarations ...
>>
>>
>>     qry=format('copy tablefoo (id_foo, foo_name, foo_lastname, foo_age)
>> FROM stdin  DELIMITER as  '||chr(39) || '|' || chr(39) || ';' || chr(13)
>> ||'%s|%s|%s|%s' || chr(13) || '\.',id,name,lastname,age);
>>
>>    execute(qry);
>>
>>
>>    ... more declarations
>>    end <- end function, returns  an integer.
>>
>>
>> ** then,  i  call the function:
>>     select insert_tablefoo(12321,'John','Doe',33);
>>
>> **and get the next error:
>>
>> ERROR:  syntax error at or near "12321"
>> LINE 2: 12321|John|Doe|33
>>
>> ********** Error **********
>>
>>
>> after many tests, the problem is concatenate the newline, because  if
>>  the instruction generated is copied to a file and insert manually the
>> newline the query works well.
>>
>> i tried  with chr(10),  '\n', '\r', split  the qry string ( execute
>> qry_copy || E'\\n' || qry_data || E'\\n\\.')
>> but always get the same error  :(
>>
>>
>>
>> ERROR: syntax error at or near "12321"
>> SQL state: 42601
>>
>>
>>
>>
>> **  By the way, i tried to replace an insert  with copy  because  the
>> insert takes  more than 3 minutes to insert a single record.
>>
>
> The above seems to be the real problem.
>
> Can you describe more what you are doing when you INSERT?
>
>
>
>>
>> Regards and thanks in advance.
>>
>
>
> --
> Adrian Klaver
> adrian.kla...@aklaver.com
>

Reply via email to