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)

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))