СОЗДАНИЕ ИЛИ ИЗМЕНЕНИЕ ТАБЛИЦЫ, КОТОРЫЙ ИМЕЕТ КОМБИНИРОВАННЫЙ ПЕРВИЧНЫЙ КЛЮЧ, ФОРМА ИЗ 3 ИХ АТРИБУТОВ - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь создать таблицу и дать в качестве первичного ключа 3 атрибута, которые у него есть.

Код ниже:

CREATE TABLE compra 
(
    dni_cli VARCHAR2(50),
    cod_prod NUMBER(10) NOT NULL,
    cantidad NUMBER (10),
    CONSTRAINT pk_compra PRIMARY KEY (dni_cli, cod_prod, cantidad);
    CONSTRAINT pelicula_codigo_prod_fg FOREIGN KEY (cod_prod) REFERENCES producto(cod_prod),
    CONSTRAINT pelicula_codigo_cli_fg FOREIGN KEY (dni_cli) REFERENCES cliente(dni)
);

Я также пытался сначала создайте таблицу, а затем добавьте ограничение, чтобы создать комбинированный PRIMARY KEY с таблицей alter, но он не работает.

Код такой:

ALTER TABLE CONSTRAINT pk_compra PRIMARY KEY (dni_cli, cod_prod, cantidad);

1 Ответ

1 голос
/ 26 января 2020

Если первичный ключ уже существует, вам нужно удалить ключ:

ALTER TABLE compra drop constraint pk_compra;

, затем добавить ключ:

ALTER TABLE compra add constraint pk_compra primary key (city_id, buildtime, time);

Если первичный ключ не существует в таблице, просто используйте вторую командную строку.

Также, как заметил @stickybit, ваша таблица содержит ошибку. Это код без ошибки:

CREATE TABLE compra (
dni_cli VARCHAR2(50),
cod_prod NUMBER(10) NOT NULL,
cantidad NUMBER (10),
CONSTRAINT pk_compra PRIMARY KEY (dni_cli,cod_prod,cantidad), --<<change here
CONSTRAINT pelicula_codigo_prod_fg FOREIGN KEY (cod_prod) REFERENCES producto(cod_prod),
CONSTRAINT pelicula_codigo_cli_fg FOREIGN KEY  (dni_cli) REFERENCES cliente(dni));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...