在AWS Redshift中,声明主键不仅可以确保表中没有重复的记录,而且可以提高查询性能。但是,有时候即使主键被声明,仍然可以插入具有重复值的记录。这种情况发生的可能原因是表中含有NULL值,而主键不能用NULL作为值。因此,需要在声明主键时添加NOT NULL约束,这样就可以避免有NULL值存在。以下是一个示例:
CREATE TABLE example_table ( id integer NOT NULL PRIMARY KEY, name varchar(50), age integer NOT NULL );
在此示例中,NOT NULL约束对id和age列都进行了声明。这意味着,id和age列中不能有NULL值。如果尝试插入一个含有NULL值的记录,会抛出错误。
通过这种方法,在声明主键时添加NOT NULL约束,就可以避免重复值的存在。