Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Create table pokup (






ID_POKUP INTEGER NOT NULL,

POK_NAME VARCHAR(40) CHARACTER SET WIN1251 NOT NULL,

POK_ADDRESS VARCHAR(50) CHARACTER SET WIN1251 NOT NULL,

POK_CITY INTEGER,

POK_CREAT VARCHAR(10) CHARACTER SET WIN1251 DEFAULT USER NOT NULL,

POK_TSTAMP DATE DEFAULT 'NOW' NOT NULL,

CONSTRAINT POK_PK PRIMARY KEY (ID_POKUP),

CONSTRAINT POK_UK UNIQUE (POK_NAME, POK_ADDRESS)

);

CREATE TABLE TEL_POKUP (

ID_POKUP INTEGER NOT NULL,

PHONE_POK VARCHAR(10) NOT NULL,

POK_CREAT VARCHAR(10) CHARACTER SET WIN1251 DEFAULT USER NOT NULL,

POK_TSTAMP DATE DEFAULT 'NOW' NOT NULL,

CONSTRAINT PHONE_POK_PK PRIMARY KEY (ID_POKUP, PHONE_POK)

);

Таким образом определенная таблица TEL_POKUP будет дочерней по отношению к таблице POKUP. Для каждого из покупателей может быть несколько телефонов. Одинаковый телефон может быть у разных покупателей.

Создаем генераторы и триггера для таблицы ПОКУПАТЕЛИ:

CREATE GENERATOR POK_GEN;

SET GENERATOR POK_GEN TO 0;

SET TERM!!;

CREATE TRIGGER Pok_ID_BI FOR POKUP

BEFORE INSERT

AS BEGIN

NEW.ID_POKUP = GEN_ID(POK_GEN, 1);

END

!!

SET TERM;!!

В таблице ТЕЛЕФОНЫ у нас не будет автоинкрементных полей.

Установим связи таблиц Родительская – Дочерняя между POKUP и TEL_POKUP:

ALTER TABLE TEL_POKUP

ADD CONSTRAINT POKUP_PHONE_FK FOREIGN KEY (Id_POKUP) REFERENCES POKUP

ON DELETE CASCADE

ON UPDATE CASCADE;

Пробуем добавит запись в таблицу ПОКУПАТЕЛЬ.

INSERT INTO POKUP (POK_Name, POK_ADDRESS, POK_City)

values('Иванов И.И.', 'Пушкинская 27 кв 1', 1)

INSERT INTO TEL_POKUP (Id_POKUP, PHONE_POK)

values(1, '726-14-87')

INSERT INTO TEL_POKUP (Id_POKUP, PHONE_POK)

values(1, '64-18-27')

Рис. 21 Заполнение таблицы телефонов покупателей

Рис.22 Список покупателей

Попробуем теперь удалить запись о покупателе из таблицы POKUP:






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.