2016-03-17 152 views
1

我需要通過它們所插入的時間整理我的查詢結果
最簡單的方法是存儲的auto_increment鍵,每排由它
對數據進行排序,但也需要有一個隨機ID作爲primary_key
產生這將是類似以下內容:
自動遞增列主鍵

 
+------------------------+-------------+------------------+ 
| sortId(auto_increment) | id(primary) | content(varchar) | 
+------------------------+-------------+------------------+ 
| 0      | 23245  | some text  | 
+------------------------+-------------+------------------+ 
| 1      | 94655  | some text  | 
+------------------------+-------------+------------------+ 
| 2      | 59413  | some text  | 
+------------------------+-------------+------------------+ 

,所以我就可以加載由sortID
整理我的數據,但正如我在phpmyadmin中所述,我不允許在我的表格中添加primary_key時添加auto_increment列。
爲什麼會發生這種情況,我該如何解決?
有沒有更好的方法來排序來自數據庫的查詢結果?

謝謝。

+1

任何你不想正常使用它的原因 - 將'sortId'設置爲主索引,自動增量,'id'是唯一索引? – Shomz

+0

我對此不知道,我可以使用唯一索引作爲外鍵嗎? – JamesHanies

+0

當然,任何索引都可以用作外鍵。 :) – Shomz

回答

0

如果您擔心設置外鍵約束,可以在任何索引字段上設置它們,所以我建議您將您的sortId設置爲主自動遞增索引,並且id爲唯一索引。

除非你真的有很好的理由去違背這個通常的做法。

0

INT您sortID欄更改爲TIMESTAMP和它的默認值設置爲TIMESTAMP。它會在每次創建行時插入當前時間戳,並且您不僅可以按照您對整數進行排序的方式對它們進行排序,還可以知道創建何時發生。

+0

這樣一個好主意。但實際上它浪費了存儲空間並降低了性能。我真的不需要世代時間。不管怎麼說,還是要謝謝你 – JamesHanies