Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
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:
|