首先,我需要一個解決方案Oracle和MySQL。MySql/Oracle刪除數字列的空位
我有一個文件夾表:
id | name | parent_id | position _________________________________ 1 | root | null | 1 2 | a | 1 | 1 3 | b | 1 | 2 4 | b1 | 3 | 1 5 | b2 | 3 | 2 6 | c | 1 | 3 7 | d | 1 | 4 8 | e | 1 | 5給出的樹
:
root |_ a |_ b | |_b1 | |_b2 |_c |_d |_e
列position
有NOT NULL
和UNIQUE
約束。
問題:
有時候,我不得不刪除單個查詢一些文件夾(如:刪除文件夾 '一', 'B1', 'd')。做這件事時,我有空白的文件夾位置:
id | name | parent_id | position _________________________________ 1 | root | null | 1 3 | b | 1 | 2 5 | b2 | 3 | 2 6 | c | 1 | 3 8 | e | 1 | 5
所以我需要更新單個請求表更新位置列,並以特定的順序(防止UNIQUE
約束)以獲得結果:
id | name | parent_id | position _________________________________ 1 | root | null | 1 3 | b | 1 | 2 5 | b2 | 3 | 1 6 | c | 1 | 2 8 | e | 1 | 3
任何想法?
感謝
'刪除間隙'是否意味着更新表? –
是的,我需要更新表,但我在一個請求中搜索這樣做 – Yoplaboom
同樣的SQL語句必須與MySQL和Oracle一起工作嗎?可能會很棘手...... – jarlh