oracle動態(tài)sql語句 MySQL觸發(fā)器怎么變相使用動態(tài)SQL?
MySQL觸發(fā)器怎么變相使用動態(tài)SQL?動態(tài)處理語句不能用在MySQL觸發(fā)器或存儲函數(shù)中,但可以用在存儲過程中。然后我們可以使用一般的方法,但是我們可能需要修改應(yīng)用程序的一些SQL代碼,但是更改量非常
MySQL觸發(fā)器怎么變相使用動態(tài)SQL?
動態(tài)處理語句不能用在MySQL觸發(fā)器或存儲函數(shù)中,但可以用在存儲過程中。然后我們可以使用一般的方法,但是我們可能需要修改應(yīng)用程序的一些SQL代碼,但是更改量非常小。
如果要使用表tb,請關(guān)聯(lián)tb1、TB2、TBN。我們可以將要處理的動態(tài)語句寫入存儲過程,然后在寫入表tb(insert、update、delete)時添加對存儲過程的調(diào)用。
舉個例子:
delete from tbwhere id=2原來只有這個語句,但是我們可以修改為:
一條SQL語句在MySQL中是如何執(zhí)行的?
MySQL執(zhí)行SQL的過程是這樣的:
1。連接器,這一步是建立與客戶端的連接
2。分析器,解析SQL語句,如果SQL語句編寫不正確,此步驟將報告錯誤
3。優(yōu)化器,這一步主要是選擇索引,MySQL會選擇被認(rèn)為是最好的索引,但實際上可能不是最好的
4這一步主要是調(diào)用特定的存儲引擎,根據(jù)表的定義執(zhí)行SQL?,F(xiàn)在默認(rèn)引擎是InnoDB。還有一個binlog。
這里省略了查詢緩存的步驟。此步驟在連接器之后,但緩存通常是關(guān)閉的。