如果我在信息之前加上这个可能会有所帮助:它是一个股票股东数据库。新的行/行等于公司的新股东。旧系统中的每个股东都有一个所谓的股东编号,正好是六个字符长,前面有零。
我的直接问题是:如何为所有新插入的行提供唯一ID,这些ID也将根据其中一行进行字母顺序排列。 我需要插入新名称,并且ID的名称与字母顺序相同。
详细信息:
我将数十年前的数据库导入到新的PHP程序中。当在旧系统中添加一行时,它会使用一个人名,将其与一个数字相关联,并将其放入。有问题的是整个字母系统按ID排序,而不是直接从名称中排序。
基本上,姓氏为“Afrebos”的人会有一个像032500这样的ID;名字叫“威廉姆斯”的人会有一个像895573这样的ID;名字为“Zeta”的人将是985000.数据库似乎不知道字母表,完全依赖于ID号的顺序。
我正在制作的新系统将按名称排序,不再需要这些数字了。但是,我的老板想继续使用这些旧数字(它们与其他公司系统相关)。从现在开始添加行时,我可以选择随机的唯一数字,但为了清洁和专业,我希望继续按照多年来的方式组织一切。
关于如何使用PHP / SQL / PDO执行此操作的任何想法?任何帮助都将非常感激。
答案 0 :(得分:2)
SQL可以通过varchar列快速排序,例如名称(即按字母顺序排列),尤其是在索引该列时。
我会改变你的表以包含一个自动增量id并将旧的id存储在一个单独的列中,如果新的条目不需要可比较的id,甚至是一个单独的表,但你也可以将原始ID保存为您的主键列,并为每个新条目选择一个随机的未使用值。