Expand my Community achievements bar.

Announcing the launch of new sub-community for Campaign Web UI to cater specifically to the needs of Campaign Web UI users!
SOLVED

How to get the id after insert (Auto PK= True)

Avatar

Level 1

xtk.session.Write(<tempOptout xtkschema="sam:tempOptout" _operation="insert" rId={vrId} blId={vblId} oldEmail={vOldEmail} optOut={vOptOut}  />);

In the above I want to get back the id value for the above schema after the insert. Schema has autopk=true

Please help

1 Accepted Solution

Avatar

Correct answer by
Level 1

I was able to achieve it as below . Problem with inserting and then selecting is it does not guarantee the right id because of parallel transactions.   So I had to do the below

var sql4 =   "WITH upd AS (INSERT INTO SamTempOptout (sOldEmail,iBlId,iRId,iOptOut) values ('"+ vOldEmail + "'," + vblId  + "," +vrId + "," + vOptOut + ") RETURNING iTempOptoutId) SELECT iTempOptoutId FROM upd ";

document.write("sql4 = " + sql4 );

ctx.vars.TempOptoutId =  String(sqlGetInt(sql4))

View solution in original post

2 Replies

Avatar

Employee Advisor

Hi amritak94288453 ,

You will have to fire a queryDef using proper unique conditions, probably rId={vrId}, blId={vblId} and oldEmail={vOldEmail}

Regards,

Vipul

Avatar

Correct answer by
Level 1

I was able to achieve it as below . Problem with inserting and then selecting is it does not guarantee the right id because of parallel transactions.   So I had to do the below

var sql4 =   "WITH upd AS (INSERT INTO SamTempOptout (sOldEmail,iBlId,iRId,iOptOut) values ('"+ vOldEmail + "'," + vblId  + "," +vrId + "," + vOptOut + ") RETURNING iTempOptoutId) SELECT iTempOptoutId FROM upd ";

document.write("sql4 = " + sql4 );

ctx.vars.TempOptoutId =  String(sqlGetInt(sql4))