【问题标题】:MySQL Trigger for auto-increment a varchar (not Primary key)MySQL触发器自动增加一个varchar(不是主键)
【发布时间】:2017-09-06 04:40:17
【问题描述】:

我认为它已经回答了,但我对一些线程感到困惑。我创建了一个表

  • ID - int(自增)PK
  • IDNumber - varchar ----> 样本数据 (AFC0000001)
  • EmployeeID - FK

现在,我想了解如何管理“IDNumber”的自动增量。我知道它没用的想法,但在我目前的情况下,我需要这个。也许你知道一些触发器或任何想法?

【问题讨论】:

  • 如何增加一个varchar? 'A' -> 'B' -> 'C'?你确实需要改变你的解决方案。
  • @LipingHuang 不是这样,它是一个带数字的变量。像ABC00001
  • 您也可以在查询 IDNumber 时只附加 ID,并且只存储前缀,或者在 INSERT 之后将 ID 附加到 IDNumber。

标签: mysql sql database triggers


【解决方案1】:

您的意思是更改 ABC00001 -> ABC00002 之类的内容吗?还是 0001 -> 0002?

如果您的 ID 类似于 ABD00001,这会很棘手,因为您必须忽略 1 前面的所有字符,而仅将 1 增加 1 = 2,等等。如果您的 ID 类似于 0102 那么您可以使用 SQL 自动增加数字,例如

mysql_query("UPDATE ed_names SET c_request = c_request+1 WHERE id = 'x'");

编辑

真的不需要更多的过程,你所要做的就是这样

<input type="text" name="card_id" value="ABC<?php $length = 5; $randomString = substr(str_shuffle("0123456789"), 0, $length); echo $randomString;?>">

然后会输出如下内容:

<input type="text" name="card_id" value="ABC65918">

当然,每次重新加载页面时,该值都会更改,但如果您想确保可以添加一个脚本,该脚本每 5 或 10 秒更改一次值。

【讨论】:

猜你喜欢
  • 2011-04-26
  • 2010-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多