gpt4 book ai didi

mysql - 如何将rowid添加到具有增量但按另一列分组的表中?

转载 作者:行者123 更新时间:2023-11-29 12:23:19 25 4
gpt4 key购买 nike

例如,我有一个表1:

+---------------------+---------------+
| StartTime | dIPaddr |
+---------------------+---------------+
| 2014-04-09 09:47:53 | 0.210.208.240 |
| 2014-04-09 09:47:53 | 0.210.208.240 |
| 2014-04-09 09:47:55 | 0.210.208.240 |
| 2014-04-09 08:39:55 | 0.210.243.93 |
| 2014-04-09 08:39:57 | 0.210.243.93 |
| 2014-04-09 08:40:00 | 0.210.243.93 |
| 2014-04-09 13:02:25 | 0.210.25.224 |
| 2014-04-09 13:02:25 | 0.210.25.224 |
| 2014-04-09 13:02:25 | 0.210.25.224 |
| 2014-04-09 13:02:27 | 0.210.25.224 |
+---------------------+---------------+

现在我想得到一个结果:

+---------------------+---------------+---------------+
| StartTime | dIPaddr | rowid |
+---------------------+---------------+---------------+
| 2014-04-09 09:47:53 | 0.210.208.240 | 1 |
| 2014-04-09 09:47:53 | 0.210.208.240 | 2 |
| 2014-04-09 09:47:55 | 0.210.208.240 | 3 |
| 2014-04-09 08:39:55 | 0.210.243.93 | 1 |
| 2014-04-09 08:39:57 | 0.210.243.93 | 2 |
| 2014-04-09 08:40:00 | 0.210.243.93 | 3 |
| 2014-04-09 13:02:25 | 0.210.25.224 | 1 |
| 2014-04-09 13:02:25 | 0.210.25.224 | 2 |
| 2014-04-09 13:02:25 | 0.210.25.224 | 3 |
| 2014-04-09 13:02:27 | 0.210.25.224 | 4 |
+---------------------+---------------+---------------+

rowid自动递增,但按dIPaddr分组。我尝试使用

ALTER TABLE table1 ADD COLUMN rowId int not null auto_increment 
group by dIPaddr;

但它只是显示错误。如何得到我想要的结果?

最佳答案

这在 InnoDB 中不能直接使用。 MyISAM 中提供了类似的功能,其中有一个 2 列主键(dIPaddr,rowId)。这将切换到这样的(我认为):

ALTER TABLE table1
ADD COLUMN rowId int not null auto_increment,
ADD PRIMARY KEY(dIPaddr, rowId),
ENGINE=MyISAM;

未使用 GROUP BY。 (但这是一个很好的猜测。)

之后,您的 INSERT 中不再包含 rowId,系统将自动提供它。

如果您想继续使用 InnoDB,那么可以使用 @variables 使用 rowId 来改造该表。但它不会自动为新行提供 rowId,除非您编写了 TRIGGER。

关于mysql - 如何将rowid添加到具有增量但按另一列分组的表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28711200/

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