草庐IT

TRIGGERS

全部标签

Mysql 使用触发器建表

我试图在Mysql触发器中创建表,但没有创建。如何使用触发器创建表,此处传递动态的表名称? 最佳答案 据我所知,在触发器内创建表是不可能的。看这里:http://forums.mysql.com/read.php?99,121849,122609#msg-122609另请查看RestrictionsonStoredRoutines,Triggers,andEvents上的存储函数限制部分页面。 关于Mysql使用触发器建表,我们在StackOverflow上找到一个类似的问题:

sql - MySQL数据版本控制

有什么方法可以设置MySQL每次更改一行,然后使用原始数据创建另一个表/数据库的行?(带时间戳)如果是这样,我会怎么做呢?例如UPDATE`live_db`.`people`SET`live_db`.`people`.`name`='bob'WHERE`id`=1;导致这在更新之前发生:INSERTINTO`changes_db`.`people`SELECT*FROM`live_db`.`people`WHERE`live_db`.`people`.`id`=1;如果你再做一次,结果会是这样的:`live_db`.`people`+----+-------+-------------

php - 可以在 MySQL 插入上执行 PHP?

我实际上想在记录添加到数据库时通过邮件或以某种方式通知用户。有可能吗?像ONINSERT触发器一样,我执行一些PHP? 最佳答案 您不能使用mysql事件执行PHP脚本。您必须在PHP端执行此操作。检查插入命令是否执行成功并发送邮件。 关于php-可以在MySQL插入上执行PHP?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5742957/

Mysql 触发器性能 vs php 手动插入

我想在插入某些表后创建一个通知。例如,每当用户插入评论时,我都会为管理员创建一条通知,告知该用户已创建评论。我曾经在PHP中手动完成它,它并没有那么糟糕,它是这样的://afterthecommentiscreatedNotification::create(....);还不错,但有时我会给用户添加图片、帖子等的能力。所以我必须记住每次插入通知。所以我正在考虑改用mysql触发器。但我担心这会如何影响性能?最后一件事,是否可以在插入多个表后创建触发器?谢谢, 最佳答案 Isitpossibletocreateatriggerafte

mysql - 在 MySQL DBMS 中引发应用程序错误触发器

我正在处理MySQL中的触发器,我想添加引发应用程序错误,但我的代码表明:Errorcode1064,SQLstate42000:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'(-20000,'PayisbelowTexasminimumwage!');ENDIF;END'atline9如果我删除引发应用程序错误的部分,它会完美地工作。触发器:DELIMITER@@DROPTRIGGERIFEXISTSgmtt.a

mysql - 触发器是异步的吗?

我有一个表A,它维护表B中的总用户数。我只关心表A中的计数是否与表B中的用户数同步。因此,每当我在表B中插入一个用户时,我都希望根据用户的插入或删除来增加/减少计数。有两种方法:-a)如果我在表B中插入行,我可以在一个存储过程中对表​​A发出更新计数。这导致两个命令先插入再更新。因此说需要2秒。(假设每个txn在1秒内)b)我可以在存储过程中编写插入命令。另外,定义一个触发器,在表A中的插入完成后更新表A中的计数。对我来说,这只需要1秒的时间,这只是在表B中插入行。我假设更新表B中计数的“插入后触发器”发生在后台,因此是异步的或非-阻塞。这个假设是否正确,或者两种方法都将花费相同的时间

MySQL触发器不被约束调用

我有两个(InnoDB)表,它们带有用于更新、插入和删除的触发器。如果我直接在table上工作,它们工作得很好。此外,当我删除tableA中的一行时,我有一个外键约束,tableA.id引用的tableB中的所有行也被删除。这也有效,但问题是:对tableA的DELETE触发tableA的DELETE触发器。然后约束删除tableB中的行但是没有调用tableB的DELETE触发器。为什么?约束不触发触发器吗?谢谢。(触发器是AFTERDELETE。也尝试过BEFOREDELETE但没有成功。) 最佳答案 如果删除是由外键引起的,则

mysql - 我可以在 mysql 中的一个触发器声明中定义多个事件吗?

这是我的要求,我有一个mysql表,任何更改(插入/删除/更新)都应该以完全相同的方式处理。根据mysql文档创建触发器语法如下:CREATE[DEFINER={user|CURRENT_USER}]TRIGGERtrigger_nametrigger_time**trigger_event**ONtbl_nameFOREACHROWtrigger_body当我试图放置多个事件时,它会抛出语法错误。一种解决方案是我可以编写一个过程和3个触发器(每个事件一个)并从所有触发器调用相同的过程。有什么复杂的解决方案吗?? 最佳答案 没有。在

mysql - 从 mysqldump 创建的 SQL 恢复后出现错误 1465 "Triggers can not be created on system tables"

我在amazonRDS上运行mysql5.6服务器,并设置了一个只读副本,用于使用mysqldump创建备份。我尝试使用“--all-databases”选项,但是当我尝试导入由mysqldump创建的SQL时,我最终遇到了来自mysql命令客户端的错误:ERROR1465"Triggerscannotbecreatedonsystemtables"我使用“--all-databases”是因为我基本上想在发生崩溃时将RDS中的所有内容恢复到以前的状态。也许这是错误的,我应该只选择我的模式(加上mysql.users表)?但是,如果“--all-databases”永远行不通,它最初的

mysql - 在触发器中获取动态表名

tb_ticketstb_sites_21我正在创建一个触发器CREATEDEFINER=`root`@`localhost`TRIGGER`color_changed`AFTERINSERTON`tb_tickets`FOREACHROWUPDATEtb_sites_21SETcolor_status=NEW.statusWHEREsite_id=NEW.site_id;它工作正常,我唯一需要的是tb_sites_21,我希望从创建新条目的tb_tickets的program_id中挑选这个21。像这样:CREATEDEFINER=`root`@`localhost`TRIGGER`