準備的陳述式
在SQL中,準備的陳述式用於範本化類似的查詢或更新。 Adobe Experience Platform Query Service使用引數化查詢支援準備的陳述式。 這可最佳化效能,因為您不再需要重複重新剖析查詢。
使用準備的陳述式
使用預準備陳述式時,支援下列語法:
準備準備準備的陳述式 prepare
此SQL查詢會儲存名稱指定為PLAN_NAME
的已寫入SELECT查詢。 您可以使用變數(例如$1
)來代替實際值。 這個準備好的陳述式將會在目前的工作階段期間儲存。 請注意,計畫名稱 不區分 大小寫。
SQL格式
PREPARE {PLAN_NAME} AS {SELECT_QUERY}
範例SQL
PREPARE test AS SELECT * FROM table WHERE country = $1 AND city = $2;
執行準備的陳述式 execute
此SQL查詢使用先前建立的準備陳述式。
SQL格式
EXECUTE {PLAN_NAME}('{PARAMETERS}')
範例SQL
EXECUTE test('canada', 'vancouver');
解除配置準備的陳述式 deallocate
此SQL查詢用於刪除具名的準備陳述式。
SQL格式
DEALLOCATE {PLAN_NAME}
範例SQL
DEALLOCATE test;
使用準備陳述式的範例流程
最初,您可以有SQL查詢,例如以下查詢:
SELECT * FROM table WHERE id >= 10000 AND id <= 10005;
上述SQL查詢將傳回下列回應:
ID
firstname
姓氏
生日
電子郵件
城市
國家/地區
10000
alexander
davis
1993-09-15
example@example.com
溫哥華
加拿大
10001
安東尼
杜布瓦
1967-03-14
example2@example.com
巴黎
法國
10002
恭子
櫻花
1999-11-26
example3@example.com
東京
日本
10003
linus
彼得松
1982-06-03
example4@example.com
斯德哥爾摩
瑞典
10004
更容易
waithaka
1976-12-17
example5@example.com
奈洛比
肯亞
10005
費爾南多
rios
2002-07-30
example6@example.com
聖地亞哥
智利
您可以使用下列準備好的陳述式,將此SQL查詢引數化:
PREPARE getIdRange AS SELECT * FROM table WHERE id >= $1 AND id <= $2;
現在,可以使用以下呼叫執行準備好的陳述式:
EXECUTE getIdRange(10000, 10005);
呼叫此專案時,您會看到與先前完全相同的結果:
ID
firstname
姓氏
生日
電子郵件
城市
國家/地區
10000
alexander
davis
1993-09-15
example@example.com
溫哥華
加拿大
10001
安東尼
杜布瓦
1967-03-14
example2@example.com
巴黎
法國
10002
恭子
櫻花
1999-11-26
example3@example.com
東京
日本
10003
linus
彼得松
1982-06-03
example4@example.com
斯德哥爾摩
瑞典
10004
更容易
waithaka
1976-12-17
example5@example.com
奈洛比
肯亞
10005
費爾南多
rios
2002-07-30
example6@example.com
聖地亞哥
智利
使用完預先準備的陳述式後,您可以使用下列呼叫來解除配置它:
DEALLOCATE getIdRange;
recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb