自动增加SQL中的两个字段?

时间:2012-05-18 09:20:44

标签: php sql

我想知道是否有办法在同一张表中自动增加两列。

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

任何提示? 感谢

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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

如果您使用的是SQl Server,请按照以下步骤操作:

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

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

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

答案 2 :(得分:0)

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

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

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

您是否有理由要求每个用户使用fileid顺序?

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