我正在尝试在使用值的AWS解析器中创建一个SQL语句。
例如:
#set( $inserts = [] )
#foreach ( $item in $ctx.args.input.listItems)
$util.qr($inserts.add( ['$item.item_id', '$item.item_name', 'item.item_image_id'] ))
#end
我的SQL语句是:
#set( $sql = "INSERT INTO items (item_id, item_name, item_image_id) VALUES $inserts" )
但是这不起作用。我还有另一种创建这种SQL语句的方法吗? 谢谢
答案 0 :(得分:1)
我会这样:
#set( $sql = "INSERT INTO items (item_id, item_name, item_image_id) VALUES " )
#foreach ( $item in $ctx.args.input.listItems)
#set( $sql = $sql + "($item.item_id, $item.item_name, $item.item_image_id)")
#if( $foreach.hasNext )
#set( $sql = $sql + ", ")
#else
#set( $sql = $sql + ";")
#end
#end
$sql
此解决方案对您有用吗?
将$ctx
视为
{
ctx: {
args: {
input: {
listItems: [
{
item_id: "itemId1",
item_name: "itemName1",
item_image_id: "itemImageId1"
},
{
item_id: "itemId2",
item_name: "itemName2",
item_image_id: "itemImageId2"
}
]
}
}
}
}
输出等于INSERT INTO items (item_id, item_name, item_image_id) VALUES (itemId1, itemName1, itemImageId1), (itemId2, itemName2, itemImageId2);
。