代码如下,第一次写,不知道什么地方错了,我想在删除第一个表的一条数据后,从删除的那条记录中查出tableName名字,前面加上"first" 为另一个表名,在此把这个表给删去!
delimiter //
CREATE TRIGGER `testDB`.`t_fist_second` AFTER DELETE
ON testDB.first FOR EACH ROW
BEGIN
set @tableName="first" + (select tableName from OLD);
drop table tableName;
END; //
delimiter;
delimiter //
CREATE TRIGGER `testDB`.`t_fist_second` AFTER DELETE
ON testDB.first FOR EACH ROW
BEGIN
set @tableName="first" + (select tableName from OLD);
drop table tableName;
END; //
delimiter;
解决方案 »
- mysql 自动断开连接
- 如何在查询中依据变量比较显示新值,别名不能用
- InnoDB复制如何初始化数据?也用LOAD DATA FROM MASTER?
- 如何在VB中连接MySQL数据库,请高手指点(只连接过SQL Server)!
- MySQL不同服务器表的复制
- 在MYSQL中,如何将一个检索出来的结果集,再次进行检索?
- 我使用psql <dbName> 的时候提示没有文件或文件夹,为什么?
- 奇怪问题,跪求大侠指点,通宵未解决!!急
- mysql的group_concat函数问题
- mysql有什么函数或者方法可以获取序列化xml中的值
- 请问网站MYSQL数据库如何移植到其他服务器上?
- 求SQL...................
set @tableName=CONCAT('drop table ','first',OLD.tableName);
PREPARE stmt1 FROM @tableName
EXECUTE stmt1
delimiter //
CREATE TRIGGER testDB.t_first_second AFTER DELETE
ON testDB.first FOR EACH ROW
BEGIN
set @tableName=CONCAT('drop table ','dfirst',OLD.tableName);
PREPARE stmt1 FROM @tableName;
EXECUTE stmt1;
END; //
delimiter; 却又提示出
Dynamic SQL is not allowed in stored function or trigger;
到临时表中,用SP来执行。