IBM DB2在截断表上重新创建索引
截断表并在表中插入新值后,自动增量值不会设置为起始值1。插入新值时,记住自动增量的最后一个索引ed值 表中的列名为:IBM DB2在截断表上重新创建索引,db2,reindex,Db2,Reindex,截断表并在表中插入新值后,自动增量值不会设置为起始值1。插入新值时,记住自动增量的最后一个索引ed值 表中的列名为:ID 索引:PRIMARY 初始值:1 缓存大小:1 增量:1 [已在IBM DB2 Control Center上检查] 此查询: TRUNCATE TABLE ".$this->_schema.$table." DROP STORAGE IGNORE DELETE TRIGGERS IMMEDIATE 桌子是空的 插入新值后示例:INSERT INTO DB2INST1
ID
索引:PRIMARY
初始值:1
缓存大小:1
增量:1
[已在IBM DB2 Control Center上检查]
此查询:
TRUNCATE TABLE ".$this->_schema.$table." DROP STORAGE IGNORE DELETE TRIGGERS IMMEDIATE
桌子是空的
插入新值后示例:INSERT INTO DB2INST1.db(val)VALUES('abc')
插入最后一个值
ID | val
55 | abc
但它应该是:
ID | val
1 | abc
我猜您的问题是“如何重新启动
标识
序列?”如果是这种情况,那么您可以使用以下SQL重置它:
ALTER TABLE <table name> ALTER COLUMN <IDENTITY column> RESTART WITH 1
ALTER TABLE ALTER COLUMN用1重新启动
然而,正如@Ian所说,您看到的是
截断的预期行为
首先在表模式中选择,其中是标识列的名称:
问题1:
从SYSCAT.COLUMNS中选择COLNAME,其中TABSCHEMA='DB2INST1'和
TABNAME='DB'和IDENTITY='Y'
然后,截断表并返回其示例:ID,用于更改索引:
问题2:
此ID用于查询重置和更改索引标识:
ALTER TABLE DB2INST1.DB ALTER COLUMN ID RESTART WITH 1
上面的更改ID是从查询1返回的,它将ID的名称返回给查询2
解决了 这是一个问题吗?这是TRUNCATE TABLE的预期行为。是的,但我不希望使用DESCRIBE TABLE搜索增量列并选择as。意思是,自动搜索标识列的名称,但描述表未找到增量列名称。很快,要通过搜索名称增量列找到的名称,然后将此列名称放入,这不是我的问题,我不接受答案。你必须等很多天才能接受自己对自己问题的回答。