我希望MYSQL爲每個條目分配一個16位數字,因爲它將用於私人信用卡服務。我該怎麼做呢??MYSQL自動增加每個條目的16位數字
我已成立被稱爲ID自動遞增和BIGINT領域,但它仍然只是爲了分配號碼從1開始
我需要的數字是16位長和隨機的。
請幫忙!
我希望MYSQL爲每個條目分配一個16位數字,因爲它將用於私人信用卡服務。我該怎麼做呢??MYSQL自動增加每個條目的16位數字
我已成立被稱爲ID自動遞增和BIGINT領域,但它仍然只是爲了分配號碼從1開始
我需要的數字是16位長和隨機的。
請幫忙!
您可以設置自動遞增數在任何號碼,即可開始
ALTER TABLE MY_TABLE AUTO_INCREMENT = 1000000000000000; -- the first 16-digit number
指定數量的唯一限制是,它是不低於指定表的自動增量列的當前最大數量少。
但是這不會提供隨機數字。
要創建一個隨機的16位號碼,你可以在使用PASSWORD()
功能,它創建了一個16位十六進制數字插入使用觸發器,並將其轉換成一個號碼,如果你需要對結果調用UNHEX()
和SUBSTR()
捕獲16個隨機數字。
爲了安全起見,你應該傳遞一個帶有值的種子,例如新的id值與來自記錄中的另一條信息連接起來,並與可能與當前時間連接的常量連接起來。這取決於你想要走多遠。
隨機數也可以在您的應用程序代碼中完成,這可能是一個更好的選擇,因爲它比數據庫功夫更容易調試和控制。
因此,我們會收到第一個數字:1000000000000000,然後第二個數字:1000000000000001? – user2371301
是的 - 它增加了一個新的數字插入 – Bohemian
您的隨機數的編輯將啓動在PHP或在哪裏? – user2371301
通常情況下,信用卡號碼的一個或多個數字包含某種檢查值以檢測打字錯誤。 – Marichyasana