gpt4 book ai didi

Mysql->与另一个字段相关的自增

转载 作者:行者123 更新时间:2023-11-29 05:23:56 24 4
gpt4 key购买 nike

我卡在项目设计上了。其中一个表与用户表有 1-M 关系。所以它有一个外键。同样的字段也是主键。

表格如下

项目编号:

  • 主键
  • 自增

用户标识项:

  • 主键
  • users表中id的外键

元素名称:

  • 不为空

值(value)观:

-----------------------------------------
| **ITEMID** | **USERID** | ITEMNAME |
-----------------------------------------
| 1 | 1 | fooooooo |
-----------------------------------------
| 2 | 1 | tinytext |
-----------------------------------------
| 3 | 1 | MediumText |
-----------------------------------------
| 4 | 2 | LARGEtext |
-----------------------------------------
| 5 | 2 | HUGETEXT |
-----------------------------------------
| 6 | 1 | BLOOOOOB |
-----------------------------------------
| 7 | 3 | 001010101 |
-----------------------------------------

这是当前设计的结果。我想知道的是,有一种方法可以分别为每个用户自动递增。

类似于“按用户 id 自动递增项目 id GROUP”

-----------------------------------------
| **ITEMID** | **USERID** | ITEMNAME |
-----------------------------------------
| 1 | 1 | fooooooo |
-----------------------------------------
| 2 | 1 | tinytext |
-----------------------------------------
| 3 | 1 | MediumText |
-----------------------------------------
| 1 | 2 | LARGEtext |
-----------------------------------------
| 2 | 2 | HUGETEXT |
-----------------------------------------
| 4 | 1 | BLOOOOOB |
-----------------------------------------
| 1 | 3 | 001010101 |
-----------------------------------------

有没有办法使用 mysql 来做到这一点?

最佳答案

你想要这样的东西:

Demo

CREATE TRIGGER item_id_auto_inc
BEFORE INSERT ON items
FOR EACH ROW

BEGIN
SET NEW.item_id := (SELECT CASE WHEN ISNULL(MAX(item_id)) THEN 0 ELSE MAX(item_id) END +1 FROM items WHERE user_id=NEW.user_id);
END
//

关于Mysql->与另一个字段相关的自增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22444188/

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