2012-12-07 74 views
-2

我需要为表中的主键创建6个字母数字,但是我只是想让int字段具有自动增量并获得该字段的最大值并使用此代码处理,因此它可以是字母数字和存储在不同的领域..这个想法和代码是否符合要求?这很好吗?它会永远是独一无二的吗?为唯一字段创建6个字母数字代码

<?php 
    $code = the max value retrieved from the autoincrement int 
    function getNextAlphaNumeric($code) { 
     $base_ten = base_convert($code,36,10); 
     $result = base_convert($base_ten+1,10,36); 
     $result = str_pad($result, 6, '0', STR_PAD_LEFT); 
     $result = strtoupper($result); 
     return $result; 
    } 
+0

不是交易==世界的痛苦。 –

+0

为什么不有'CHAR(6)'的主键? –

+0

cus我希望它有autoincrement .. char不能自动增加权利? – user1851384

回答

0

这里有一些想法。

  1. 创建6个字符的主键。

  2. 生成用PHP代码

  3. INSERT IGNORE使用它插入;如果没有行受到影响(开始时不太可能),请再试一次。

  4. 完成。添加了一个唯一的代码。

+0

如何生成它?并且每个生成都必须被验证是唯一的还是不是/它是否已经在表中?它会很快吗? – user1851384

+0

只需创建一个随机字符串;它能有多难? –

+0

杰克我可以问,我曾经看过一些帖子说,字符主键不利于设计,他们说只是使用int自动增量。真的吗? – user1851384

相关问题