Создать TRIGGER для создания TRIGGER при создании таблицы
Я заинтересован в создании TRIGGER
это создает TRIGGER
когда таблица создана.
Просматривая базы данных mysql, я заметил, что таблицы для схемы возвращаются с:
select TABLE_NAME, TABLE_SCHEMA from information_schema.TABLES;
Является ли следующий правильный метод для создания TRIGGER
, чтобы создать TRIGGER
привязаны к другой схеме?
DELIMITER //
CREATE TRIGGER `information_schema`.`argus_table_creation`
AFTER INSERT on `TABLES`
BEGIN
--trigger here
CREATE TRIGGER `argus`.`after_argus_insert` --create trigger bound to DB 'argus', titled 'after_insert'
AFTER INSERT ON `argus_table_2013_06_27` FOR EACH ROW -- perform the trigger, `after insert`, on the `argus_table_2013_06_27` table, `for each row` that is inserted.
BEGIN
INSERT INTO argus.historic_argus_saddrdaddr(saddr, daddr)
(
SELECT saddr, daddr
FROM (SELECT NEW.saddr, NEW.daddr) as derived
WHERE NOT EXISTS (SELECT saddr, daddr FROM argus.historic_argus_saddrdaddr where historic_argus_saddrdaddr.saddr = derived.saddr and historic_argus_saddrdaddr.daddr = derived.daddr)
);
END//
END//
DELIMITER;
Обоснование:
Я использую клиентское приложение ( rasqlinsert), которое автоматически создает новые таблицы, соответствующие заданной схеме именования (где вы можете использовать strftime(f)). Мне нужно создать триггер для этих автоматически сгенерированных таблиц по мере их создания. Вот почему я ищу решение.
Другое возможное решение
Можно ли посоветовать разработчику программного обеспечения использовать команду, аналогичную CREATE TABLE n LIKE x
, но есть ли копирование триггеров?
PS связался с дев. Свернутся поменяны с 3.0.7.11
принять произвольный SQL для выполнения наряду с созданием новой БД. Ожидается, что к понедельнику код достигнет репо.
1 ответ
Вы не можете установить триггеры для таблиц в information_schema
база данных.
Можете ли вы привести цитату? - mbrownnyc
http://dev.mysql.com/doc/refman/5.1/en/information-schema.html
Справочное руководство по MySQL 5.1
Глава 20. INFORMATION_SCHEMA Таблицы
Замечания по использованию для базы данных INFORMATION_SCHEMA
INFORMATION_SCHEMA - это база данных в каждом экземпляре MySQL, место, где хранится информация обо всех других базах данных, которые поддерживает сервер MySQL. База данных INFORMATION_SCHEMA содержит несколько таблиц только для чтения. Они на самом деле являются представлениями, а не базовыми таблицами, поэтому с ними не связано никаких файлов, и вы не можете устанавливать на них триггеры.