Sudėtinis raktas yra dviejų ar daugiau lentelės stulpelių derinys, kurį naudojant galima vienareikšmiškai identifikuoti kiekvieną lentelės eilutę, kai stulpeliai yra sujungti, unikalumas garantuojamas, tačiau paėmus atskirai, jis unikalumo negarantuoja.
Kartais, norint unikaliai identifikuoti objektą, reikia daugiau nei vieno atributo. Pirminis raktas, sudarytas derinant daugiau nei vieną atributą, yra žinomas kaip sudėtinis raktas.
Kitaip tariant, galime pasakyti, kad:
Sudėtinis raktas yra raktas, kuris yra daugiau nei vieno tam tikros lentelės lauko ar stulpelio derinys. Tai gali būti kandidato raktas arba pirminis raktas.
Stulpeliai, sudarantys sudėtinį raktą, gali būti skirtingų duomenų tipų.
SQL sintaksė, skirta sudėtiniam raktui nurodyti:
CREATE TABLE TABLE_NAME (COLUMN_1, DATA_TYPE_1, COLUMN_2, DATA_TYPE_2, ??? PRIMARY KEY (COLUMN_1, COLUMN_2, ...));
Visais atvejais sukurtą sudėtinį raktą sudaro COLUMN1 ir COLUMN2.
MySQL:
CREATE TABLE SAMPLE_TABLE (COL1 integer, COL2 varchar(30), COL3 varchar(50), PRIMARY KEY (COL1, COL2));
MySQL:
java ilga iki int
CREATE TABLE SAMPLE_TABLE (COL1 integer, COL2 varchar(30), COL3 varchar(50), PRIMARY KEY (COL1, COL2));
Oracle:
CREATE TABLE SAMPLE_TABLE CREATE TABLE SAMPLE_TABLE (COL1 integer, COL2 varchar(30), COL3 varchar(50), PRIMARY KEY (COL1, COL2));
SQL serveris:
Pažiūrėkime pasirinkto viršaus teiginio sintaksę:
CREATE TABLE SAMPLE_TABLE (COL1 integer, COL2 nvarchar(30), COL3 nvarchar(50), PRIMARY KEY (COL1, COL2));