2011-04-14 269 views
66

我有一個使用PHP,MySQL和phpMyAdmin的現有數據庫。在phpmyadmin中自動增量

當用戶成爲我網站上的會員時,我需要系統使用五位數字爲他們創建唯一的會員編號。例如83773.我想這就像生成一個隨機密碼,除了我只想爲我的成員提供數字。此ID號對每個成員都必須是唯一的。

我可以在我的用戶表中將主鍵設置爲auto_increment並將其設置爲從10000開始,然後每次成員註冊時自動遞增?

此外,有主鍵ID號會達到最大數量?

這是一個可靠和安全的方式來使用主鍵ID號作爲會員編號?

+3

下面的一些人回答說,沒有主鍵的上限,但我會假設上限是您選擇的數據類型的最大大小......也許我錯了,但不會, t int被限制爲最大值4294967295然後? http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html – Sam 2011-04-14 16:19:25

+0

請拿起接受的答案。我認爲這是一個http://stackoverflow.com/a/18942684/248616 – 2014-10-20 07:36:32

回答

2

在phpMyAdmin中,如果您在表格中設置了一個字段以自動遞增,然後插入一行並將該字段的值設置爲10000,則該字段將從那裏繼續。

49

在phpMyAdmin中,導航到相關表格並單擊「操作」選項卡。在表格選項左側,您可以設置當前的AUTO_INCREMENT值。

+1

當我這樣做時,我只有兩個關於添加auto_increment的選項是「將表格移動到」或「將表格複製到」。我既不想移動或複製表格,只需添加auto_increment即可。到底是怎麼回事??我正在使用MySQL v5.6。 – Anthony 2017-09-15 01:15:43

15

只需運行一個簡單的MySQL查詢並將自動增量編號設置爲任何你想要的。

ALTER TABLE `table_name` AUTO_INCREMENT=10000 

在最大方面,據我所知,沒有一個,也不是有什麼辦法來限制這樣的數字。

這是完全安全的,並且通常的做法是將ID號設置爲初始密鑰,自動遞增int。還有一些替代方法,例如使用PHP爲您生成特定格式的會員號碼,然後在插入前檢查號碼不存在,但對於我個人而言我會使用主ID auto_inc值。

0

你不能設置最大值(除了選擇一個不能保存大數字的數據類型,但沒有你所要求的限制)。您可以在插入後使用LAST_INSERT_ID()檢查以獲取新創建的成員的id,如果它太大,則在應用程序代碼中處理它(例如,刪除和拒絕成員)。

爲什麼你想要一個上限?

133

有一些步驟可以使列自動竄改。我猜phpMyAdmin版本是3.5.5,但不確定。

點擊上的ppoup窗口滾動變化>結構標籤>在行動點擊左側和檢查A_I。另外,還要確保你選擇默認enter image description here

+4

由於自動增加功能已從「操作」選項卡中刪除,因此現在顯示如何實現它。謝謝,@AmitKB。 – 2013-10-01 19:03:27

+1

但是,當我試圖得到這個錯誤:'查詢錯誤: #1075 - 不正確的表定義;只能有一個自動列,並且必須將其定義爲關鍵字' – TricksfortheWeb 2016-02-07 15:47:45

+0

該消息很明確,您可能會嘗試擁有多個自動列。 – 2016-02-08 03:19:50

6
  1. 在表格的「結構」選項卡
  2. 點擊你想要的變量的鉛筆AUTO_INCREMENT
  3. 下的「額外」選項卡中選擇「AUTO_INCREMENT」
  4. 然後去你的表的 「操作」 選項卡
  5. 在 「表選項」 - > AUTO_INCREMENT類型 - > 10000
1

@AmitKB,您的程序是正確的。雖然這個錯誤

查詢錯誤:#1075-不正確的表定義;可以只有一個自動列,它必須被定義爲一個鍵

可以通過首先將該字段標記爲鍵(使用帶有標籤主鍵的鍵圖標)來解決,除非您有其他鍵可能無法工作。