我想知道是否有办法在同一张表中自动增加两列。
我有user_id数据库,所以每个注册用户都有他独特的nr。 但我想添加一个file_id,以便用户上传的每个文件都有一个唯一的编号。
任何提示? 感谢
答案 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标识列。