create table d(id numeric(1), code varchar(2))
Po utworzeniu powyższej tabeli, w jaki sposób mogę dodać złożony klucz podstawowy w obu polach, a także klucz obcy?Jak dodać złożony klucz podstawowy do tabeli
create table d(id numeric(1), code varchar(2))
Po utworzeniu powyższej tabeli, w jaki sposób mogę dodać złożony klucz podstawowy w obu polach, a także klucz obcy?Jak dodać złożony klucz podstawowy do tabeli
W Oracle, można to zrobić:
create table D (
ID numeric(1),
CODE varchar(2),
constraint PK_D primary key (ID, CODE)
);
alter table d add constraint pkc_Name primary key (id, code)
powinno wystarczyć. Istnieje wiele opcji podstawowego podstawowego klucza/indeksu w zależności od tego, z czym DB pracuje.
Oświadczenie ALTER TABLE
przedstawiony przez Chris powinny działać, ale najpierw trzeba zadeklarować kolumny NOT NULL
. Wszystkie części klucza podstawowego muszą być NOT NULL
.
Nie trzeba najpierw stworzyć tabelę, a następnie dodać klucze w kolejnych krokach. Możesz dodać zarówno klucz podstawowy, jak i klucz obcy podczas tworzenia tabeli:
W tym przykładzie założono istnienie tabeli (Codes
), którą chcielibyśmy odwołać za pomocą naszego klucza obcego.
CREATE TABLE d (
id [numeric](1),
code [varchar](2),
PRIMARY KEY (id, code),
CONSTRAINT fk_d_codes FOREIGN KEY (code) REFERENCES Codes (code)
)
Jeśli nie masz stolik, że możemy odniesienia, dodasz jak to tak, że przykład zadziała:
CREATE TABLE Codes (
Code [varchar](2) PRIMARY KEY
)
UWAGA: trzeba mieć stół do referencyjnego przed tworzenie klucza obcego.
Jeśli używasz programu Sql Server Management Studio Designer, wybierz oba wiersze (Shift + kliknięcie) i ustaw klucz podstawowy.
im dość jasne, że usuwa inne ograniczenia klucza – thanatorr
utworzyć tr tabeli (id numerycznej (1), varchar pojemnik (10)) alter table tr dodać ograniczenie pk_id klucz podstawowy (id, bin) jej nie pracował dlaczego – Domnic
Sir jego dziękuję u – Domnic
@simonn: po prostu ciekawy, nie może ch eck teraz, ale czy NIE jest NULL dla kolumn niejawnych, czy musisz dodać je do definicji kolumn? – Thilo