![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Alter table tovar
DROP CONSTRAINT Integ_3 Получилось. Ключ удален. Возьмем себе за правило: Назначать ограничения, в том числе и Первичные Ключи с явными, а не системными именами. Удалим из таблицы ненужную запись на английском языке… DELETE FROM TOVAR WHERE TOV_EDIZM = 'kg' И добавим следующие поля: ALTER TABLE TOVAR ADD Id_Tov integer NOT NULL ALTER TABLE TOVAR ALTER Id_Tov POSITION 0, а также ALTER TABLE TOVAR ADD TOV_CREAT VARCHAR(10) CHARACTER SET WIN1251 DEFAULT USER NOT NULL, ADD TOV_TSTAMP DATE DEFAULT 'NOW' NOT NULL Рис.19 Результат заполнения таблиц БД После этого ввод данных из консоли не получается, но при помощи операторов - все замечательно. В таблице фиксируется кто и когда добавлял в нее записи. Создаем новый Первичный ключ по полю Id_Tov: ALTER TABLE TOVAR ADD CONSTRAINT Tov_PK PRIMARY KEY (Id_Tov) Создаем новый альтернативный ключ по полям Tov_NAME, TOV_EDIZM: ALTER TABLE TOVAR ADD CONSTRAINT Tov_UK UNIQUE (Tov_NAME, TOV_EDIZM) Создание автоинкрементных полей. Генераторы. Создадим “Автоинкрементное поле” на основе поля Id_Tov типа INTEGER и Генератора. Его создание позволяет автоматически задавать уникальные значения полям создаваемых записей. Создаем генератор: CREATE GENERATOR TOV_GEN Задаем его начальное значение: SET GENERATOR TOV_GEN TO 2 Для того, чтобы он “заработал” нужно создать триггер SET TERM!!; CREATE TRIGGER Tov_ID_BI FOR TOVAR BEFORE INSERT AS BEGIN NEW.ID_Tov = GEN_ID(Tov_GEN, 1); END !! SET TERM;!! Выполнив этот SQL-скрипт, посмотрите - на закладке Свойства для таблицы TOVAR назначен триггер, срабатывающий перед вставкой новых записей (рисунок 20). Рис.20 Перечень триггеров для таблицы TOVAR Для чего нужны SET TERM!! При передаче серверу команда SQL по умолчанию завершается “; ”. Но синтаксис операторов внутри хранимых процедур и триггеров также требует “; ” в конце. Поэтому вначале мы переопределяем символ, завершающий оператор SQL на последовательность “!! ”. Теперь он завершает команду ввода, а “; ” используется для окончания предложений операторов языка SQL внутри процедур. После текста триггера идет “!! ”, чтобы завершить команду SQL. Затем мы восстанавливаем значение символа “; ”. О типах триггеров BEFORE и AFTER INSERT, UPDATE, DELETE, о смысле NEW.ID_Tov мы говорили на лекции. GEN_ID(Tov_GEN, 1) - функция, увеличивающая значения генератора Tov_GEN на 1. А могла бы и на 10, 25 и т.д. Аналогично создайте таблицу покупателей POKUP с целым ПК Id_Pokup и генератором Pok_GEN и таблицу TEL_POKUP с ПК (Telef, Pok_Id):
|