1
如何在MySQL數據庫中使用動態SQL語句而不使用會話變量?帶本地變量的動態MySQL
現在我有這樣的代碼(在MySQL存儲過程):
(...) DECLARE TableName VARCHAR(32); SET @SelectedId = NULL; SET @s := CONCAT("SELECT Id INTO @SelectedId FROM ", TableName, " WHERE param=val LIMIT 1"); PREPARE stmt FROM @s; EXECUTE stmt; DEALLOCATE PREPARE stmt; IF ISNULL(@SelectedId) THEN (...)
但我想只使用局部變量,這意味着我想與啓動該程序:
DECLARE TableName VARCHAR(32); DECLARE s VARCHAR(1024); DECLARE SelectedId INTEGER UNSIGNED; (...)
並且不要在任何地方使用@ char。有沒有辦法做到這一點?