Mysql列值使用增量id

时间:2016-03-06 23:04:39

标签: mysql

如果我有以下表结构:

id
name
account_id

account_id将始终为6个字符的字符串以字母X开头,然后用行的增量ID填充。

有没有办法只用1行保存?

我目前正在执行2次保存:1插入名称并生成增量ID,然后另一次获取增量ID,然后保存account_id值。

2 个答案:

答案 0 :(得分:1)

如果您使用的是mysql v5.7.6或更高版本,则可以将帐号定义为generated column

  

从MySQL 5.7.6开始,CREATE TABLE支持规范   生成的列。生成列的值从a计算   表达式包含在列定义中。

     

以下简单示例显示了一个存储长度的表   在sidea和sideb列中的右三角形的边,和   计算sidec中斜边的长度(the的平方根)   其他方格的总和):

     

CREATE TABLE triangle ( sidea DOUBLE, sideb DOUBLE, sidec DOUBLE   AS (SQRT(sidea * sidea + sideb * sideb)) );

     

INSERT INTO triangle (sidea, sideb) VALUES(1,1),(3,4),(6,8);

在旧版本中,您可以省略表格定义中的帐号,并在表格顶部创建一个即时计算帐号的视图。

答案 1 :(得分:0)

如果我们不想将其包含在业务逻辑中,那么我建议编写AFTER INSERT触发器并在其中实现帐户ID生成。

这是插入触发器的SQL Fiddle example,它将记录插入另一个表中。我们可以写一些类似的东西。