我只是想讓我的MySQL表ID(主鍵),從0開始..我想ID從0開始,而是從1
正如我所看到的,我開始使用ALTER TABLE yourtable AUTO_INCREMENT = 0,但它從1開始。我需要做什麼?
EDIT1
我還清空我的表截斷選項
我只是想讓我的MySQL表ID(主鍵),從0開始..我想ID從0開始,而是從1
正如我所看到的,我開始使用ALTER TABLE yourtable AUTO_INCREMENT = 0,但它從1開始。我需要做什麼?
EDIT1
我還清空我的表截斷選項
SET [GLOBAL|SESSION] sql_mode='NO_AUTO_VALUE_ON_ZERO'
NO_AUTO_VALUE_ON_ZERO影響AUTO_INCREMENT列的處理。通常,通過向其中插入NULL或0來爲列生成下一個序列號。 NO_AUTO_VALUE_ON_ZERO將此行爲抑制爲0,以便只有NULL纔會生成下一個序列號。
如果0已存儲在表的AUTO_INCREMENT列中,此模式可能很有用。 (0存儲不是一個推薦的做法,順便說一句。)
wtf?爲什麼不是零就好。這是一個非常正常的數字。 – Fuser97381 2014-10-15 19:04:06
@ Fuser97381:是的,這是一個數字,但它會讓生活更加艱難。在許多編程語言中,當你使用布爾函數並傳遞一個0作爲參數時,你必須注意。例如,在php中,一些函數將0解釋爲FALSE。如果您從數據庫中獲得一個id,請將其存儲在變量$ id中,然後使用:empty($ id)來檢查$ id是否爲有效的ID,該函數在$ id = 0時返回FALSE。 – Frank 2017-12-19 18:13:34
你不能強迫這是零。這受限於auto_increment_offset服務器變量。默認值是1,範圍是[1 .. 65535]。
爲什麼?不要試圖影響'AUTO_INCREMENT'值。把它留給數據庫去做。無論如何,這是任意的。如果你想添加一些你想分配的ID,你不應該使它成爲'AUTO_INCREMENT'。 – 2013-04-26 08:59:15
可能是http://stackoverflow.com/questions/1142472/how-to-force-mysql-to-take-0-as-a-valid-auto-increment-value的副本 – Frhay 2013-04-26 09:00:39
@BartFriederichs實際上它必須做的一些在PHP中的數組與工作,所以我需要它..guess我會從1開始,並在我的PHP代碼中遞減數組.. – user2234992 2013-04-26 09:00:40