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


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






NO action: смотри restrict





ТРИГГЕР - по сути, хранимая процедура, но привязанная к событию изменения содержимого конкретной таблицы.

То есть, задача триггера - уловить изменения записей в заданной таблице, а также вставку записей или их удаление.

Из вышесказанного можно сделать вывод, что триггеры можно использовать, например для логирования действий над какой либо таблицей.

СОЗДАНИЕТРИГГЕРА.

CREATE TRIGGER trigger_name ON table_name trigger_time trigger_event FOR EACH ROW trigger_stmt -данный запрос используется для создания триггера в общем виде.

trigger_time - вместо этого указывается одно из ключевых слов:

BEFORE - действия триггера производятся до выполнения изменения таблицы;

AFTER - действия триггера производятся после выполнения изменения таблицы;

trigger_event - показывает на какое событие должен реагировать триггер, значения могут быть такие:

INSERT - триггер привязан к событию вставки новой записи;

UPDATE - к событию обновления новой записи;

DELETE - к событию удаления записи;

 

trigger_stmt - представляет собой тело триггера. Для выполнения нескольких операторов внутри тела триггера, необходимо заключить все в блок BEGIN-END.

Приведем пример:

Пусть есть таблица table1 с одним полем FirstName. Создадим еще одну таблицу LogsName с двумя полями: ValueCh, DateChange с соответствующими типами строк дата и время. В эту таблицу триггер будет писать то, что поймает.

DELIMITER // CREATE TRIGGER myTrigger BEFORE INSERT ON `table1`

FOR EACH ROW BEGIN

INSERT INTO `LogsName` (`ValueCh`, `DateChange`) VALUES (NEW.`FirstName`, NOW()); END//

Особенность обработки ошибок:

 

База данных - набор сведений, хранящихся некоторым упорядоченным способом. Можно сравнить базу данных со шкафом, в котором хранятся документы. Иными словами, база данных - это хранилище данных. Сами по себе базы данных не представляли бы интереса, если бы не было систем управления базами данных (СУБД).

Система управления базами данных - это совокупность языковых и программных средств, которая осуществляет доступ к данным, позволяет их создавать, менять и удалять, обеспечивает безопасность данных и т.д. В общем СУБД - это система, позволяющая создавать базы данных и манипулировать сведениями из них. А осуществляет этот доступ к данным СУБД посредством специального языка - SQL.

SQL - язык структурированных запросов, основной задачей которого является предоставление простого способа считывания и записи информации в базу данных.

Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение между множествами таблицы или таблиц базы данных.

· исключение некоторых типов избыточности;

· устранение некоторых аномалий обновления;

· разработка проекта базы данных, который является достаточно «качественным» представлением реального мира, интуитивно понятен и может служить хорошей основой для последующего расширения;

· упрощение процедуры применения необходимых ограничений целостности.

 

Первичный ключ (primary key) представляет собой один из примеров уникальных индексов и применяется для уникальной идентификации записей таблицы. Никакие из двух записей таблицы не могут иметь одинаковых значений первичного ключа. Первичный ключ обычно сокращенно обозначают как PK (primary key).

Внешний ключ сокращенно обозначают как FK (foreign key).Как видно из рис.1, внешний ключ ссылается на первичный ключ таблицы themes, устанавливая однозначную логическую связь между записями таблиц themes и posts.

Оператор ALTER TABLE обеспечивает возможность изменять структуру существующей таблицы. Например, можно добавлять или удалять столбцы, создавать или уничтожать индексы или переименовывать столбцы либо саму таблицу.

CREATE TABLE invoice (
inv_id INT AUTO_INCREMENT NOT NULL,
usr_id INT NOT NULL,
prod_id INT NOT NULL,
quantity INT NOT NULL,
PRIMARY KEY(inv_id),
FOREIGN KEY (usr_id) REFERENCES usr(usr_id)
ON UPDATE CASCADE
ON DELETE RESTRICT,
FOREIGN KEY (prod_id) REFERENCES product(prod_id)
ON UPDATE CASCADE
ON DELETE RESTRICT
) ENGINE=InnoDB CHARACTER SET=UTF8;

 

MySQL позволяет нам контролировать таблицы-потомки во время обновления или удаления данных в родительской таблице с помощью подвыражений: ON UPDATE и ON DELETE. MySQL поддерживает 5 действий, которые можно использовать в выражениях ON UPDATE и/или ON DELETE.

· CASCADE: если связанная запись родительской таблицы обновлена или удалена, и мы хотим чтобы соответствующие записи в таблицах-потомках также были обновлены или удалены. Что происходит с записью в родительской таблице, тоже самое произойдет с записью в дочерних таблицах. Однако не забывайте, что здесь можно легко попасться в ловушку бесконечного цикла.

· SET NULL:если запись в родительской таблице обновлена или удалена, а мы хоти чтобы в дочерней таблице некоторым занчениям было присвоено NULL (конечно если поле таблицы это позволяет)

NO ACTION: смотри RESTRICT

RESTRICT:если связанные записи родительской таблицы обновляются или удаляются со значениями которые уже/еще содержатся в соответствующих записях дочерней таблицы, то база данных не позволит изменять записи в родительской таблице. Обе команды NO ACTION и RESTRICTэквивалентны отсутствию подвыражений ON UPDATE or ON DELETE для внешних ключей.

Date: 2016-05-25; view: 210; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.009 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию