如何在MySQL数据库中实现这种自动增量

史密斯

我有一张叫的桌子animal

该表有四列

  1. 动物
  2. 动物索引
  3. 品种
  4. 品种指数

primary key我希望它们在逻辑上自动递增所有这四列,这意味着得到类似的东西。

| Animal| AI | Breed  | BI |
----------------------------
| dog   | 1  | Akita  | 1  |
| cat   | 2  | Persan | 1  |
| dog   | 1  | Barbet | 2  |
| dog   | 1  | Boxer  | 3  |
| eagle | 3  | Bald   | 1  |

所以如果我输入类型的查询

INSERT INTO animal (Animal, Breed) VALUES("dog", "Akita")

我的索引会自动增加。我该如何实现?

兰兰

我会考虑使用其他数据模型。也许一些关系友好的东西:

动物:

| id | name  |
--------------
| 1  | dog   |
| 2  | cat   |
| 3  | eagle |

品种:

| id | name    | breed_idx | animal_id |
---------------------------------------|
| 1  | Akita   | 0         | 1         |
| 2  | Persan  | 0         | 2         |
| 3  | Barbet  | 1         | 1         |
| 4  | Boxer   | 2         | 1         |
| 5  | Bald    | 1         | 3         |

Mysql可以轻松地自动增加id列,但是由于“ breed_idx”列需要一些逻辑,因此您必须自己解决这个问题。实现此目的的一种方法是在插入内容中使用select:

insert into breed (name, breed_idx, animal_id) values('Shar pei', (select count(*) from breed where animal_id = (select id from animal where name = 'dog')), (select id from animal where name = 'dog'));

请注意,正如上面的示例数据所示,这将创建一个零索引列。

还有其他方法可以执行此操作(存储过程或触发器),但这是一种快速的,数据库提供者不可知的方法,可以实现您正在寻找的内容(我认为)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在数据库中实现这种相当复杂的概念/关系?

PHP mysql自动增量传递空白到数据库

从本地mysql数据库增量加载到Amazon Redshift中-自动化过程

如何在MySQL数据库中实现“收藏夹”关系?

如何在MySQL中哈希自动增量

如何在Laravel中自动将数据库从mysql更改为mongodb

如何从Android SQLite数据库中的1重新启动自动增量ID

如何获取数据库中特定行的相应user_id(自动增量)值?

如何根据codeigniter中的数据库行数回显自动增量行号?

如何在mysql数据库上更新增量值

检索自动增量数据库值

如何在Spark SQL(PySpark)中实现自动增量

将Pandas数据框上传到MySQL数据库后如何获取列的自动增量值

如何在MySQL数据库中输入$ _POST数据

如何在mysql数据库中添加json数据

如何在oracle数据库中使用字符串创建TRIGGER列ID自动增量?

如何在关系数据库中建模这种关系?

在这种情况下如何在asp.net中访问数据库?

如何在NoSQL数据库中设计这种一对多模式?

有没有办法在mysql数据库中插入带有前缀的自动增量主ID?

如何在RDS中重命名MYSQL数据库?

如何在 MySql 数据库中存储对象?

如何在mysql数据库中存储语音

如何在Julia中连接到MySQL数据库

如何在数据库mysql中制作foreach

如何在Django中检查数据库与mysql的连接

如何在MySQL中查看数据库或表的索引?

如何在MySQL数据库中备份单个表?

如何在mysql数据库中获取帐户