所以我有一个数据库,其中包含任意数量的表,这些表都有一个id-column,它是一个整数,但它不自动递增。相反,整数总是由我的实体经理设置。
每次我的应用程序启动时,我都想问数据库"嘿,您所有表中的最高id值是什么?"。所以,从那一刻起,我可以在我的实体中自动增加它。
我试过这个:SELECT MAX(id) FROM (SHOW TABLES)
,但当然没有用。我想使用一个查询,我不必在查询中指定我确切地拥有哪些表,因为我不想每次在混合中添加表时都必须更改查询。
任何人都可以帮助我吗?
答案 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();
与之合作。