如何从所有表中获取最高的非递增id值

时间:2016-11-23 10:47:26

标签: mysql sql

所以我有一个数据库,其中包含任意数量的表,这些表都有一个id-column,它是一个整数,但它自动递增。相反,整数总是由我的实体经理设置。

每次我的应用程序启动时,我都想问数据库"嘿,您所有表中的最高id值是什么?"。所以,从那一刻起,我可以在我的实体中自动增加它。

我试过这个:SELECT MAX(id) FROM (SHOW TABLES),但当然没有用。我想使用一个查询,我不必在查询中指定我确切地拥有哪些表,因为我不想每次在混合中添加表时都必须更改查询。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您正在寻找一个序列,为您提供唯一的ID,无论您是否真正使用它们。 MySQL没有直接使用它,但对于具有自动递增ID的表(它为每个新记录创建一个新ID)。

因此,您可以创建一个虚拟表,仅用于创建ID:

create table ids (id bigint not null auto_increment, primary key(id));

添加记录

insert into ids values();

并要求提供新ID

select last_insert_id();

与之合作。