2017-02-23 6 views
3

ich versuche und Erfolg in Redshif Primärschlüssel zu erstellenPrimärschlüssel ohne duplizierte Werte

create table my_table(id int , 
    primary key(id)); 


insert into my_table values 
(id), 
(1), 
(1), 
(20); 

select count(*) from my_table 

3 

aber es erlaubt mir duplizierten Wert zu laden,

soweit ich Primärschlüssel kennen einzigartige enthalten sollte Werte,

habe ich etwas falsch gemacht?

+0

zeigen Sie eine vollständige Snippet das funktioniert (obwohl es zum Scheitern verurteilt angenommen hat)? Ein Primärschlüssel sollte in der Tat doppelte Werte verbieten. – Mureinik

Antwort

0

finden eine identity key erstellen, die als auto_increment Ersatzschlüssel fungiert. Dies dient dem Zweck, die Datensätze in der Tabelle eindeutig zu identifizieren und das Einfügen doppelter Werte zu verhindern.

Werfen wir einen Dummy-Tabelle erstellen:

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; 

enter image description here

Die id Säule fungiert als primary key. Das Löschen eines Datensatzes aus der Tabelle wirkt sich nicht auf die Reihenfolge anderer Werte aus, und die ID-Spalte kann zur eindeutigen Identifizierung der nachfolgenden Zeile verwendet werden.

enter image description here

Verwandte Themen