我目前正在修改Firebird v.1.5数据库.
数据库结构将被修改为使用interbase组件从delphi应用程序运行查询,我面临的问题是我需要运行大量查询,其中一些包括创建生成器和更新生成器值,问题在于我需要在尽可能少的查询中实现这一点,但似乎(至少对我而言)这不可能实现,我正在尝试做的是以下内容:
/* this command creates a generator to be used for table TABLENAME */
CREATE GENERATOR GEN_TABLENAME;
Run Code Online (Sandbox Code Playgroud)
所以我创建了一个生成器,现在我需要在表TABLENAME的当前最大id处设置它的值,如下所示:
/* one would expect that the following command would work, well it doesn't */
SET GENERATOR GEN_TABLENAME TO (SELECT MAX(ID) FROM TABLENAME);
Run Code Online (Sandbox Code Playgroud)
现在,有没有解决方法,或者我被迫:
并重复每个表的过程?
我也期待着
SELECT
SELECT MAX(ID) AS ID_TABLENAME_1 FROM TABLENAME_1,
...
SELECT MAX(ID) AS ID_TABLENAME_N FROM TABLENAME_N
Run Code Online (Sandbox Code Playgroud)
将是一个解决方法,从一个命令中的每个表中获取最大ID,但它没有.