Ответ 1
В Oracle вы можете сделать это:
create table D (
ID numeric(1),
CODE varchar(2),
constraint PK_D primary key (ID, CODE)
);
create table d(id numeric(1), code varchar(2))
После создания таблицы выше, как я могу добавить составной первичный ключ в оба поля, а также внешний ключ?
В Oracle вы можете сделать это:
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)
должен это сделать. Там много вариантов основного первичного ключа/индекса в зависимости от того, с какой БД вы работаете.
Оператор ALTER TABLE
, представленный Крисом, должен работать, но сначала вам нужно объявить столбцы NOT NULL
. Все части первичного ключа должны быть NOT NULL
.
Вам не нужно сначала создавать таблицу, а затем добавлять ключи в последующие шаги. При создании таблицы вы можете добавить как первичный ключ, так и внешний ключ:
В этом примере предполагается существование таблицы (Codes
), которую мы хотели бы ссылаться на наш внешний ключ.
CREATE TABLE d (
id [numeric](1),
code [varchar](2),
PRIMARY KEY (id, code),
CONSTRAINT fk_d_codes FOREIGN KEY (code) REFERENCES Codes (code)
)
Если у вас нет таблицы, которую мы можем ссылаться, добавьте ее так, чтобы этот пример работал:
CREATE TABLE Codes (
Code [varchar](2) PRIMARY KEY
)
ПРИМЕЧАНИЕ. перед созданием внешнего ключа у вас должна быть таблица для ссылки.
При использовании Sql Server Management Studio Designer просто выберите обе строки (Shift + Click) и Set Primary Key.