Гарри - волшебник, и он создает группу, которая называется «общение с кольцом». Номер волшебника Гарри - 77.
INSERT INTO group VALUES ('the fellowship of the ring','01');
INSERT INTO activity VALUES ('01','77','the fellowship of the ring’);
Гондор также хочет присоединиться к группе и занятию01.
Из таблицы мы знаем, что «wizardno» является первичным ключом таблицы мастера.
«имя группы» - это первичный ключ таблицы группы. «Acitvityno» - это ключ UF таблицы группы.
«acitvityno» - это первичный ключ таблицы активности.
«groupname» - это внешний ключ таблицы действий. «Wizardno» - это UF-ключ таблицы действий. In
для добавления Гондора в группу Гарри. Номер мастера Гондора - 99.
Я использую
insert into activity values (’01’,’99’,’the fellowship of the ring’);
Получена ошибка: Причина: оператор UPDATE или INSERT попытался вставить дубликат ключа. Для Trusted Oracle, настроенного в режиме MAC СУБД, вы можете увидеть это сообщение, если существует дублирующаяся записьна другом уровне. * Действие: либо удалите уникальное ограничение, либо не вставляйте ключ.
Но оно должно оставаться уникальным ограничением.
drop table wizard;
drop table activity;
drop table group;
CREATE TABLE wizard (
wizardno NUMBER(2) NOT NULL,
wizardname VARCHAR2(30) NOT NULL,
);
ALTER TABLE wizard ADD CONSTRAINT wizard_pk PRIMARY KEY ( wizardno );
CREATE TABLE group (
groupname VARCHAR2(30) NOT NULL,
activityno NUMBER(2) NOT NULL
);
ALTER TABLE group ADD CONSTRAINT group_pk PRIMARY KEY ( groupname );
CREATE TABLE activity (
activityno NUMBER(2) NOT NULL,
wizardno CHAR(2) NOT NULL,
groupname VARCHAR2(30)
);
ALTER TABLE activity
ADD CONSTRAINT activity_pk PRIMARY KEY ( activityno );
ALTER TABLE activity
ADD CONSTRAINT activity_wizard_fk FOREIGN KEY ( wizardno )
REFERENCES wizard ( wizardno );
ALTER TABLE activity
ADD CONSTRAINT activity_group_fk FOREIGN KEY ( groupname )
REFERENCES group ( groupname );