Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 没有重复值的主键_Sql_Amazon Redshift - Fatal编程技术网

Sql 没有重复值的主键

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 但它允许我上传重复的值 据我所知,主键应该包含唯一的值 我做错什么了吗 你可以在这里找到答案 其中一个答案提到了主键的问题创建一个标识键,它将充当自动增量代理键。这将

我正在尝试并成功地在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 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列可用于唯一标识后续行


你能展示一个完整的工作片段吗(尽管它应该失败)?主键确实应该禁止重复值。