访问:如何更改列以对抗 table 中的现有行?
Access: How to alter column to counter with existing rows in table?
我知道这不是简单的解决办法:
ALTER TABLE BLOCK ALTER COLUMN block_id COUNTER(5000,1) PRIMARY KEY;
-- I get here error saying about wrong column type
因为 2 个原因:
- table必须为空
- table 必须没有主键
我有这样的简化方案:
我需要在 block
table block_id
栏和 record
table record_id
栏中制作计数器。 Source
中的 Source_id
列已经是一个计数器。这里的问题是 tables 具有如附图所示的连接。而这3个table全都填满了数据
Max(block_id) = 4129
Max(record_id) = 9047
而且我想让这个列成为一个计数器,从之前写入的 2 个值开始。有没有不做temp tables的解决办法?
没有临时 tables 是不可能做到这一点的。主键不是问题,但如果有数据,您永远不能将 INT 字段更改为自动编号。
您需要使用追加查询 (INSERT INTO) 将现有 ID 复制到带有自动编号的新 table 中。
这个link可能会给你一些想法:How to reset an AutoNumber field value in Access
我知道这不是简单的解决办法:
ALTER TABLE BLOCK ALTER COLUMN block_id COUNTER(5000,1) PRIMARY KEY;
-- I get here error saying about wrong column type
因为 2 个原因:
- table必须为空
- table 必须没有主键
我有这样的简化方案:
我需要在 block
table block_id
栏和 record
table record_id
栏中制作计数器。 Source
中的 Source_id
列已经是一个计数器。这里的问题是 tables 具有如附图所示的连接。而这3个table全都填满了数据
Max(block_id) = 4129
Max(record_id) = 9047
而且我想让这个列成为一个计数器,从之前写入的 2 个值开始。有没有不做temp tables的解决办法?
没有临时 tables 是不可能做到这一点的。主键不是问题,但如果有数据,您永远不能将 INT 字段更改为自动编号。
您需要使用追加查询 (INSERT INTO) 将现有 ID 复制到带有自动编号的新 table 中。
这个link可能会给你一些想法:How to reset an AutoNumber field value in Access