如何从 php 中的 F-00001 开始生成唯一的 tag_id

How to generate unique tag_id start from F-00001 in php

如何在使用 php 和 mysql 将日期插入项目 table 时从 F-00001 开始生成唯一的 tag_id。

这是我的 table。我的数据库 table 中有三列使用 MySQL.

CREATE TABLE item (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(30) NOT NULL,
tag_id VARCHAR(8) NOT NULL
)

正如@mickmackusa 指出的那样,您不需要在数据库中包含此字段,因为您可以从自动递增的 id 值中自动生成它。有多种方法可以做到这一点。

使用 generated column(MySQL 5.7 或更高版本):

CREATE TABLE item (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(30) NOT NULL,
tag_id VARCHAR(8) AS CONCAT('F-', LPAD(id, 5, '0'))
)

使用 view:

CREATE VIEW item_view AS 
SELECT *, CONCAT('F-', LPAD(id, 5, '0')) AS tag_id FROM item

使用 str_pad 在 PHP 中生成:

// assume $row is an associative array of row of table
$tag_id = 'F-' . str_pad($row['id'], 5, '0', STR_PAD_LEFT);