我有兴趣创建一个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;
推理:
我使用客户端应用程序(拉sql插入 http://qosient.com/argus/man/man1/rasqlinsert.1.pdf)自动创建与给定命名方案匹配的新表(您可以在其中使用 strftime(f))。我需要在这些自动生成的表生成时创建一个触发器。这就是我正在寻找解决方案的原因。
另一种可能的解决方案
是否可以建议软件开发人员使用类似于以下的命令CREATE TABLE n LIKE x
,但是它有复制触发器吗?
附:
联系了开发者。将滚动更改3.0.7.11
接受任意 SQL 来执行并创建新数据库。预计代码将在周一发布到开发仓库中。