如何镜像自动增量值并与 mysql 中另一列中的值合并
How to mirror auto increment value and combine with value in another column in mysql
我在 table 中有一个自动递增列 id
,这工作正常,但我正在尝试创建一个 order_id
列,它结合了 account_id
自动增量值为 id
.
的用户
所以 order_id
中的值看起来像这样:
33.1000
52.1001
69.1002
Etc
点前的数字是account_id
,点后的数字是id
的自动递增值。
我该怎么做?
我找到的类似答案是针对另一种数据库语言的,或者是带有死链接的问题。
我已经尝试在插入后使用 PHP 和最后插入的 id 函数 insert_id
立即更新数据库,但我确信这可以在 SQL 中完成。
您可以将值构造为:
concat(account_id, '.', lpad(id, 4, '0'))
遗憾的是,您不能将其用作列的生成值或默认值。这给了你两个选择。
首先是使用视图:
create table v_t
select t.*, concat(account_id, '.', lpad(id, 4, '0')) as order_id
from t;
或者使用触发器设置值。
我在 table 中有一个自动递增列 id
,这工作正常,但我正在尝试创建一个 order_id
列,它结合了 account_id
自动增量值为 id
.
所以 order_id
中的值看起来像这样:
33.1000
52.1001
69.1002
Etc
点前的数字是account_id
,点后的数字是id
的自动递增值。
我该怎么做?
我找到的类似答案是针对另一种数据库语言的,或者是带有死链接的问题。
我已经尝试在插入后使用 PHP 和最后插入的 id 函数 insert_id
立即更新数据库,但我确信这可以在 SQL 中完成。
您可以将值构造为:
concat(account_id, '.', lpad(id, 4, '0'))
遗憾的是,您不能将其用作列的生成值或默认值。这给了你两个选择。
首先是使用视图:
create table v_t
select t.*, concat(account_id, '.', lpad(id, 4, '0')) as order_id
from t;
或者使用触发器设置值。