[asterisk-users] Dialplan MySQL inserted ID
Gareth Blades
mailinglist+asterisk at dns99.co.uk
Wed Aug 21 06:10:51 CDT 2013
On 20/08/13 17:48, Gergo Csibra wrote:
>> can I echo this variable ?
> Like : exten =>> s,n,NoOp(${LAST_INSERT_ID()})
>
> No, this is a mysql query, so:
>
> exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO myTable SET C1="${ARG1}", C2="${ARG2}", timestamp="${STRFTIME(${EPOCH},,%Y-%m-%d_%H:%M:%S)}")
> exten => s,n,MYSQL(Query resultid ${connid} SELECT LAST_INSERT_ID())
> exten =>> s,n,NoOp(${resultid})
>
> first is your original insert query, next you must read the
> last_insert_id() mysql function with an other query, then you can
> echo the resultid variable which contains the last inserted id.
>
I would be a bit concerned about doing this on a busy system. What would
happen if one call inserted a value, a second call inserted a value and
then the first call read the LAST_INSERT_ID? Would it get the wrong
value back?
If you do it in AGI then each query can have its own database connection
and so avoid this issue. If thats a problem use FastAGI and have a
daemon running and use transactions or another method to avoid the issue.
More information about the asterisk-users
mailing list