你好,我需要在我的事务的注释字段中有事务id
mysql_query("INSERT INTO `transactiontb` (`tid`, `amount`, `comment`) VALUES (NULL,'$amount', CONCAT('Transaction # ',`tid`)')");我该怎么做?
发布于 2015-01-13 15:51:37
tid两次。为什么不选择它而不是以这种方式存储它呢?这不是最好的办法。不过,作为参考,请尝试使用LAST_INSERT_ID()+1)
INSERT INTO `transactiontb` (`tid`, `amount`, `comment`)
VALUES (NULL, '$amount', CONCAT_WS('Transaction # ', LAST_INSERT_ID()+1))LAST_INSERT_ID()将提供上一次插入的ID,而不是当前插入的ID,因此必须添加1。
生成的ID是在每个连接的基础上在服务器中维护的。这意味着函数返回给给定客户端的值是为影响该客户端的AUTO_INCREMENT列的最新语句生成的第一个AUTO_INCREMENT值。此值不受其他客户端的影响,即使它们生成自己的AUTO_INCREMENT值。这种行为确保每个客户端都可以检索自己的ID,而不必关心其他客户端的活动,也不需要锁或事务。
发布于 2015-01-13 15:51:18
使用LAST_INSERT_ID()函数。
LAST_INSERT_ID() (不带任何参数)返回一个BIGINT (64位)值,该值表示最近执行的INSERT语句为AUTO_INCREMENT列设置的第一个自动生成的值,以影响该列。
来源:MySQL文档
示例:
"INSERT INTO transactiontb(tid, amount, comment) VALUES (NULL,'" . $amount . "', CONCAT_WS('#','Transaction',LAST_INSERT_ID(id+1)))"刚才看到您还忘了为您的CONCAT_WS函数放置分隔符,所以我在示例查询中修复了它。
https://stackoverflow.com/questions/27925926
复制相似问题