在 SQL 中自动递增两个字段


Auto Increment two fields in SQL?

我想知道是否有办法自动递增同一表中的两列。

我有user_id数据库,所以每个注册用户都会有他唯一的nr。但我想添加一个file_id以便用户上传的每个文件都有一个唯一的编号。

有什么提示吗?谢谢

若要确保正确规范化数据库,应将文件上载存储在单独的表中。

这意味着一个用户有可能拥有多个文件,并允许表正确递增文件记录的标识字段。

您可以在维基百科上阅读有关数据库规范化的信息:http://en.wikipedia.org/wiki/Database_normalization

不可以,每个表只允许一个标识列。

如果您使用的是 SQl 服务器,请遵循以下操作:

如果您的第二个字段是静态的(您不必编辑,它遵循 sinmple 逻辑来生成其值(您可以做的是将第二个字段创建为计算字段,例如:

create table autoINC(
field1 int identity(1,1),
field2 as field1+1,
real_field varchar(50))
insert into autoINC values('test')
select * from autoINC 
1   2   test

如果需要更新第二个字段,则需要使用触发器

我认为您可以使用触发器或类似的解决方案,具体取决于数据库。

在 MSSQL 中,更新时的触发器应该有效。

但这不会确保文件名的唯一性,除非文件名还包含用户 ID。

是否有理由需要每个用户的 fileid 是顺序的?

如果没有,请将用户标识字段添加到文件表中,并在其中具有单独的 fileid 标识列。