我有一个SQL Server表,可以在上面插入帐户数据。同一帐号不应在同一天重复,但如果日期更改,可以重复。
客户根据日期和帐号检索数据。
简而言之,日期+帐号是唯一的,不应重复。
由于两者都是不同的字段,因此我应该将两者都连接起来并创建第三个字段作为主键,或者可以选择在合并值上具有主键。
请以最佳方式进行指导。
您可以创建复合主键。当你创建表时,你可以在SQL Server中做这样的事情;
CREATE TABLE TableName (
Field1 varchar(20),
Field2 INT,
PRIMARY KEY (Field1, Field2))
Run Code Online (Sandbox Code Playgroud)
看看这个问题,它对每种 SQL 风格都有帮助
一点也不。只需使用主键约束:
alter table t add constraint pk_accountnumber_date primary key (accountnumber, date)
Run Code Online (Sandbox Code Playgroud)
您还可以将其包含在create table声明中。
不过,我可能建议您使用自动递增/身份/序列主键——每行都有一个唯一的编号。然后将帐号/日期组合声明为唯一键。我更喜欢这种合成主键有几个原因: