2013-08-05 42 views
1

我正在使用MySQL中的存儲過程來更新SQL表中的一行。我所擁有的是一個表格,其中幾列以增量方式命名。 EX:Page_1,Page_2,Page_3 ....等。 存儲在這些位置的數據會在不同的時間更新,並且我有另一列用於存儲該行已更新的次數。每次程序運行時,count變量都會增加,這使我可以利用它的值來跟蹤數據下一次更新的發生位置。將變量更改爲參數的SQL更新

從我的研究中,我一直在尋找使用「動態SQL」的解決方案。我不明白如何利用這個來解決我的問題。

我想將一個變量作爲列名傳遞給更新語句。

我現在的代碼如下。

SET COUNT = COUNT + 1; -- modify count from count column 
SET COLUMNLOCATIONVARIABLE = CONCAT('Page_' , COUNT); -- concatenate the count with the column "Prefix" 

UPDATE Table 
SET COLUMNLOCATIONVARIABLE = INPUTVARIABLE --Use the concatenated statement as the column name and update it with input data 
WHERE mainID = INPUTID; 

如果任何人都可以向我解釋如何通過這個變量作爲使用動態SQL或利用非動態SQL另一種解決方案我將不勝感激列名。

在此先感謝。

回答

0

這不是使用數據庫的方式。爲您的Page_*列創建一個新表格,該表格通過標識鏈接到主表格,並帶有頁碼列。然後,您可以根據需要更新和包含儘可能多的頁面,並通過主標識和頁碼進行尋址。

+0

非常感謝你的想法邁克。我知道這不是使用數據庫的正確方法,但我仍然不明白如何拆分這些列會使得更容易知道向哪裏更新新數據。 – user2615851