Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

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

amritak94288453
Level 1
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
amritak94288453
Correct answer by
Level 1
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
Vapsy
Employee
Employee

Hi amritak94288453 ,

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

Regards,

Vipul

amritak94288453
Correct answer by
Level 1
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