我目前正在修改Firebird 1.5版數據庫。更新生成器值問題
數據庫結構將被修改從delphi應用程序使用interbase組件運行查詢,我面臨的問題是我需要運行很多查詢,其中一些包括創建生成器和更新生成器值,問題是,我需要在儘可能少的查詢儘可能地做到這一點,但它似乎(至少對我來說),這是不是真的有可能,我想要做的是以下幾點:
/* this command creates a generator to be used for table TABLENAME */
CREATE GENERATOR GEN_TABLENAME;
所以我創建了一個生成器,現在我需要從表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);
現在,有沒有這方面的任何解決辦法,還是我強迫:
- 創建發電機
- 獲得最大的id
- 更新發電機值
和重複每個表的過程?
我還預計,
SELECT
SELECT MAX(ID) AS ID_TABLENAME_1 FROM TABLENAME_1,
...
SELECT MAX(ID) AS ID_TABLENAME_N FROM TABLENAME_N
將是一個解決方法,以獲得最大的ID從每一個表中的一個命令,但事實並非如此。
你在使用什麼組件? – rstrelba
@rstrelba interbase – ComputerSaysNo
我對delphi組件感興趣。 TIBDatabase? TIBQuery? TIBDataSet? – rstrelba