1
在Oracle中與EXECUTE IMMEDIATE
一樣,有什麼方法可以在MySQL存儲過程中動態執行代碼?有沒有辦法在MySQL中動態執行代碼,類似於Oracle中的「立即執行」?
我真的想在MySQL存儲過程中使用預準備語句,以便在循環的每次迭代中生成新的SQL語句。
在Oracle中與EXECUTE IMMEDIATE
一樣,有什麼方法可以在MySQL存儲過程中動態執行代碼?有沒有辦法在MySQL中動態執行代碼,類似於Oracle中的「立即執行」?
我真的想在MySQL存儲過程中使用預準備語句,以便在循環的每次迭代中生成新的SQL語句。
它實際上不像我寫的那樣工作。 我只是這樣的代碼:
set @preparedstmt = concat('SELECT tid, LENGTH(message) len FROM ? where tid=? and first=1');
prepare stmt from prepared_stmt;
execute stmt using v_tid;
drop prepare stmt;
只是照顧表名的,它不應該與placeholder.So取代@preparedstmt應與Concat的方法生成發表聲明,這是剛剛更換在帶有佔位符的條件中的參數,而不是表名。
表名「FROM?」而其他標識符不能在USING子句中定義。 – Devart