如何在 PHP 和 MYSQL 的 Varchar 数据类型中使用自动增量? [英] How to Use Auto Increment in Varchar data Type in PHP an MYSQL?

查看:70
本文介绍了如何在 PHP 和 MYSQL 的 Varchar 数据类型中使用自动增量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

谁能告诉我们如何在 varchar 数据类型中使用自动增量?

can anyone tell us how to use auto increment in varchar data type?

我一直在寻找其他问题,人们总是要求使用整数或使用触发器.但无论如何,这是我大学的项目,其中规定了我们使用 varchar 的规则.

i have look for other question and people always ask to use interger or use trigger. but however this is my college's project that has a rule for us to use varchar.

根据数据库中存在的最后一个产品 ID 自动生成前任.如果最新的产品 ID 是PR004",那么新的 ID 将是PR005"

Automatically generated based on last Product ID existing in the database Ex. If the latest Product ID is ‘PR004’, then the new id will be ‘PR005’

所以,我们必须在php中设置自动增量对吗?有人能告诉我如何使用吗?

so, we must set auto increment in php right?can someone tell me how to use this?

谢谢

推荐答案

MYSQL 5.7.5:

您可以使用 Generated Columns这个.

未测试

CREATE TABLE TEST ( 
     ProdID VARCHAR(20) AS CONCAT('PR','',PID) STORED,
    PID INT auto_increment)

为了您的方便,

MSSQL:

最简单的方法是简单地制作一个计算列.它将所谓的计算"列与 IDENTITY 列结合使用.

The easiest method is to simply make a calculated column. It uses what is known as a "calculated" column in conjunction with an IDENTITY column.

    CREATE TABLE Test
             (
              ProdID AS CAST('PR'+RIGHT('000'+CAST(RowNum AS VARCHAR(3)),3) AS VARCHAR(30)) PERSISTED
             ,ProdName VARCHAR(30)
,RowNum INT IDENTITY(1,1) 
             );


  INSERT INTO Test (ProdName)
  SELECT 'Thread' UNION ALL
  SELECT 'Button Thread' UNION ALL
  SELECT 'Coat Thread';

  SELECT ProdID, ProdName FROM Test;

返回以下内容(注意自动增量工作):

That returns the following (notice that the auto-increment worked):

 ProdID                         ProdName
 ------------------------------ ------------------------------
 PR001                          Thread
 PR002                          Button Thread
 PR003                          Coat Thread

这篇关于如何在 PHP 和 MYSQL 的 Varchar 数据类型中使用自动增量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆