Sql 没有重复值的主键
我正在尝试并成功地在Redshif中创建主键Sql 没有重复值的主键,sql,amazon-redshift,Sql,Amazon Redshift,我正在尝试并成功地在Redshif中创建主键 create table my_table(id int , primary key(id)); insert into my_table values (id), (1), (1), (20); select count(*) from my_table 3 但它允许我上传重复的值 据我所知,主键应该包含唯一的值 我做错什么了吗 你可以在这里找到答案 其中一个答案提到了主键的问题创建一个标识键,它将充当自动增量代理键。这将
create table my_table(id int ,
primary key(id));
insert into my_table values
(id),
(1),
(1),
(20);
select count(*) from my_table
3
但它允许我上传重复的值
据我所知,主键应该包含唯一的值
我做错什么了吗 你可以在这里找到答案
其中一个答案提到了主键的问题创建一个
标识键
,它将充当自动增量代理键。这将达到两个目的——唯一地标识表中的记录并防止插入重复值
让我们创建一个虚拟表:
create table scratchpad.test_1
(id bigint identity(1,1),
name varchar(10));
insert into scratchpad.test_1(name)
values
('a'),('b'),('c'),('d');
select * from scratchpad.test_1;
id
列充当主键
。从表中删除任何记录不会影响其他值的顺序,id列可用于唯一标识后续行
你能展示一个完整的工作片段吗(尽管它应该失败)?主键确实应该禁止重复值。