0

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

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

有小费吗 ?谢谢

4

3 回答 3

2

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

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

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

于 2012-05-18T09:26:01.460 回答
1

No, only one identity column per table is allowed.

if you are using SQl Server follow this:

If your second field is static (you dont have to edit and it follows a sinmple logic to generate its value) what you can do is create the second field as a calculated one, for example:

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

if you need to update your second field, then you need to use a trigger

于 2012-05-18T09:29:07.053 回答
0

我认为您可以根据数据库使用触发器或类似的解决方案。

在 MSSQL 中,更新触发器应该可以工作。

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

您是否有理由需要 fileid 为每个用户按顺序排列?

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

于 2012-05-18T09:28:46.900 回答