使用Ruby on Rails我已經生成了一個引腳控制器,並且想要了解引腳id
在銷燬引腳後如何工作。導軌引腳:引腳ID如何工作?
我創建的第一個針腳有一個針腳id
爲1,第二個針腳標識爲2
。在銷燬第二個引腳並創建一個新的引腳後,我創建的最後一個引腳爲id
爲3.
爲什麼在銷燬第二個引腳之後創建的引腳的值爲id
爲2?有沒有辦法將它設置爲?
使用Ruby on Rails我已經生成了一個引腳控制器,並且想要了解引腳id
在銷燬引腳後如何工作。導軌引腳:引腳ID如何工作?
我創建的第一個針腳有一個針腳id
爲1,第二個針腳標識爲2
。在銷燬第二個引腳並創建一個新的引腳後,我創建的最後一個引腳爲id
爲3.
爲什麼在銷燬第二個引腳之後創建的引腳的值爲id
爲2?有沒有辦法將它設置爲?
如果沒有指定,數據庫記錄的id
通常會自動遞增。這就是爲什麼,每次你刪除一條記錄然後創建一條新記錄時,新記錄會得到下一個數字,如id
。
是的,你可以更新記錄,如果你想設置id
到別的東西。
例如,您有一個Pin
型號,它具有id
和name
屬性。
您可以創建這樣的針:
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。
附加信息:1)某些數據庫(如MS SQL)可能會保留刪除的行。或者你可以建立你自己的審計系統。您需要一種方法來引用已刪除的條目。 2)'id's不一定是整數。有些數據庫(如MongoDB)默認使用時間戳哈希值。 –
我認爲這是因爲關聯。你爲什麼要這樣呢? int佔用與2,3或100相同的空間。如果這樣做對你很重要,那麼你可以通過手動設置ID來設置任何你想要的ID。 – user1943992
如果你正在開發你的應用程序,並且自動增加困擾你,你可以截斷你的表格。 –