相关疑难解决方法(0)

更新生成器值问题

我目前正在修改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)

现在,有没有解决方法,或者我被迫:

  • 创建发电机
  • 获得最大ID
  • 更新生成器值

并重复每个表的过程?

我也期待着

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,但它没有.

firebird auto-increment firebird1.5

5
推荐指数
3
解决办法
7363
查看次数

标签 统计

auto-increment ×1

firebird ×1

firebird1.5 ×1