[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 1.3 - Inject part directly to the parts table






On Sun, Feb 2, 2014 at 2:58 AM, Pongrácz István <..hidden..> wrote:

 Hi,

I am working on a method to inject parts into the database directly.

I figured out the parts id, and partnumber auto increment, which basically was the key point from my point of view.

So, to be able to add a new record to the parts table, it needs to build a proper record.

The sequences needed to get the id and partnumber correctly, I can use the following two sql commands:

select nextval('parts_id_seq');   -> gives a new id for the parts table
select value from sequence__increment('Monitors');   -> build up the new partnumber (using sequences addon, otherwise it needs an other increment)

So, the first part is ok.

I have a sample record, which is the basis to build up the correct record, which includes all default settings, like accounts, units etc.

So, my question, how to build up the right sql syntax, preferably in one-liner?

Obviously, the following sql command does not work, check the red fields: id, partnumber.

insert into parts (id,partnumber,description,unit,listprice,sellprice,lastcost,priceupdate,
weight,onhand,notes,makemodel,assembly,alternate,rop,inventory_accno_id,income_accno_id,
expense_accno_id,bin,obsolote,bom,image,drawing,microfiche,partsgroup_id,project_id,avgcost)
values
(select nextval('parts_id_seq'),
select value sequence__increment('Monitors'),
'Test part',
'db',0,0,0,'2014-02-01',2,0,'',t,f,f,0,32,261,227,'8471',f,f,'','','',1,,);


If you want to do subqueries you need to surround them with ().

You can also just call the functions directly.   So either:

((select nextval('parts_id_seq')), (select value from sequence__increment('Monitors')), ...)

Or you could:

(nextval('parts_id_seq'), (sequence__increment('Monitors')).value, ....)

In the latter example, the parentheses serve to identify a tuple from which the value attribute is extracted. 
--
Best Wishes,
Chris Travers

Efficito:  Hosted Accounting and ERP.  Robust and Flexible.  No vendor lock-in.
http://www.efficito.com/learn_more.shtml