1

使用Ruby on Rails我已經生成了一個引腳控制器,並且想要了解引腳id在銷燬引腳後如何工作。導軌引腳:引腳ID如何工作?

我創建的第一個針腳有一個針腳id爲1,第二個針腳標識爲2。在銷燬第二個引腳並創建一個新的引腳後,我創建的最後一個引腳爲id爲3.

爲什麼在銷燬第二個引腳之後創建的引腳的值爲id爲2?有沒有辦法將它設置爲?

+0

我認爲這是因爲關聯。你爲什麼要這樣呢? int佔用與2,3或100相同的空間。如果這樣做對你很重要,那麼你可以通過手動設置ID來設置任何你想要的ID。 – user1943992

+0

如果你正在開發你的應用程序,並且自動增加困擾你,你可以截斷你的表格。 –

回答

3

如果沒有指定,數據庫記錄的id通常會自動遞增。這就是爲什麼,每次你刪除一條記錄然後創建一條新記錄時,新記錄會得到下一個數字,如id

是的,你可以更新記錄,如果你想設置id到別的東西。

例如,您有一個Pin型號,它具有idname屬性。

您可以創建這樣的針:

pin = Pin.create(name: 'Pin1') 

所以,it will get id = 1。但是,如果你破壞這個腳物件並重新創建另一個以類似的方式:

pin = Pin.create(name: 'Pin1') 

it will get id = 2等。

但是,你可以更新它的id屬性,如果你想這樣的(儘管在現實生活中的應用,你不想做!):

pin.id = 1 
pin.save 

現在,it's id is 1 again

因此,理論上它是可能的,但是您不應該在實際應用程序中手動修改數據庫記錄ID。

+0

附加信息:1)某些數據庫(如MS SQL)可能會保留刪除的行。或者你可以建立你自己的審計系統。您需要一種方法來引用已刪除的條目。 2)'id's不一定是整數。有些數據庫(如MongoDB)默認使用時間戳哈希值。 –