我有一个主要的大表,我不得不将其放入第三范式和较小的表中(主键和外键链接它们)。该表是关于租书的。
我有一个客户表,我需要为其创建一个主键。在主大表中有重复的customer_id,因为整个表都是租书的,所以一个客户可能有多个租书。
我当前尝试为其添加主键的表不会有任何空值或重复项,但是我不确定如何为此创建主键而不会出现错误 - 不确定如何使其唯一。
CREATE TABLE customer AS
SELECT cust_id, country_id, name, address, postcode
FROM BOOKS
WHERE cust_id != 0;
ALTER TABLE customer
ADD PRIMARY KEY (cust_id);
有没有人能帮助我如何在我的客户表上创建主键,而只是从主表中获取每个唯一的 cust_id。
最佳答案
在 SQL Server 中,添加唯一键的直接方法是使用 IDENTITY
。标识字段是整型字段,可按指定的起始值和间隔自动填充连续值。如果您未指定间隔,它将从 1 开始,并在每次分配值时将值增加 1。
虽然这通常是在创建表时完成的,但您可以在 ALTER TABLE
步骤中完成,它会在添加到现有表时分配值。我已经明确指定了与默认值匹配的起始值和间隔以显示语法:
ALTER TABLE customer
ADD cust_id int not null PRIMARY KEY IDENTITY(1,1)
关于sql - 创建唯一的主键以忽略重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45600438/