PHP中的自动增量值

时间:2016-09-28 19:11:32

标签: php mysql

最好的方法是什么,或者,如何将PHP + SQL中的字段格式化为AB00000,其中第一个插入的字段应为AB00001,依此类推。我有一个PHP + SQL的网页来创建一个表单并将其插入到一个表中,其中一列是" reference_nr"并且我的整个代码已经使用ID(AutoIncrement)制作,因此我不能将其用于该表。

我需要的是总是将最后使用的可能写入另一个不同的表并且在INSERT到表格的表之前我会选择最后一个值并增加+ 1并使用该数学运算的结果INSERT

  • 我需要另一张桌子,还是可以直接从表格中选择?
  • 如果两个人试图插入,你觉得它给我带来了问题 同时形成?

2 个答案:

答案 0 :(得分:1)

SQL已经带来了它:

使用SQL-Function LAST_INSERT_ID()类似于我在下面链接的源页面中的示例。假设table foo有一个自动增量字段“id”:

INSERT INTO 
    foo (auto, text, somevalue)
VALUES
    (NULL,'text', 2);         # id was generated hoer

然后你做:

UPDATE 
    foo
SET 
     somevalue = somevalue + 1
WHERE
     id = LAST_INSERT_ID()

来源:http://dev.mysql.com/doc/refman/5.7/en/getting-unique-id.html

答案 1 :(得分:0)

如果您的问题是如何获取字符串列的自动增量值,其前缀为AB00000,则自动增量字段仅为数字。 如果字段具有固定格式,则可以使用以下值中的id值创建普通插入:

SELECT CONCAT('AB', LPAD( MAX(SUBSTRING(id,3)+1 ,5,'0') from table

直接在插入中使用此值以避免交易问题