gpt4 book ai didi

mysql - 基于 MySQL 中的另一列创建计算列

转载 作者:行者123 更新时间:2023-11-29 01:22:20 25 4
gpt4 key购买 nike

我的表中有两列:varchar(8)int

我想自动递增 int 列,当我这样做时,我想将值复制到varchar(8) 列,但是用 0 填充它直到它是 8 个字符长,例如,如果 int column 递增到 3varchar(8) 列将包含 '00000003'

我的两个问题是,当 varchar(8) 列到达 '99999999' 时会发生什么,因为我不想重复?

我如何在 MySQL 中执行此操作?

如果我的值可以在 0000000099999999 之间,那么在用完之前我可以有多少个值?

这是我的另一种方法,它只创建一个随机的 8 个字符的字符串并检查 MySQL 是否有重复项。我认为这是一种更好的方法,可以提供更多的值。

最佳答案

因为您的格式化列依赖于 id 列,并且是从 id 列派生的,所以您的表设计违反了 3NF .

要么创建一个包含派生列的 View (请参阅 sqlfiddle 中的内容):

CREATE VIEW myview AS
SELECT *, substring(cast(100000000 + id AS CHAR(9)), 2) AS formatted_id
FROM mytable

或者只是从 10000000 开始自动递增,那么它的长度将始终为 8 位数字:

ALTER TABLE mytable AUTO_INCREMENT = 10000000;

关于mysql - 基于 MySQL 中的另一列创建计算列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16464869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com