【原创】关于自身表的外键触发器实现
推荐 原创david_yeung 博主文章分类:SQL语句与特殊技巧 ©著作权
©著作权归作者所有:来自51CTO博客作者david_yeung的原创作品,请联系作者获取转载授权,否则将追究法律责任
目前遇到这样一个外键定义:
`t_girl`.`tb1`
CONSTRAINT `fk_1` FOREIGN KEY (`r_id`) REFERENCES `tb1` (`id`) ON DELETE CASCADE
目的是对于自己的另外一个字段进行约束, 其实这样看来, 后面的级联删除就没有必要了,因为针对的是同一张表的同一条记录。
/* Trigger structure for table `tb1` */
DELIMITER $$
/*!50003 DROP TRIGGER*//*!50032 IF EXISTS */ /*!50003 `tr_tb1_before_insert` */$$
/*!50003 CREATE */ /*!50017 DEFINER = 'root'@'localhost' */
/*!50003 TRIGGER `tr_tb1_before_insert`
BEFORE INSERT ON `tb1`
FOR EACH ROW
BEGIN
set new.r_id = new.id;
END
*/$$
DELIMITER ;
我们在除了INNODB之外的其他引擎可以直接用触发器来实现。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Oracle(触发器删除外键约束)
表grade,和表stu具有外键约束,数据表grade就不能随便删除数据 ,这时候就用触发器解决此类问题,即使有外键关联,也要删除。--级联删除是指在建
oracle 数据库 表数据 删除数据 外键约束 -
mysql如何查看外键约束 查询外键约束
-- 查询外键约束(查某表的所有父表) select c.constraint_name,cc.column_name,rcc.owner,rcc.table_name,rcc.column_namefrom user_constraints c,user_cons_columns cc,user_c
mysql如何查看外键约束 oracle 主外键数量怎么查 数据字典 字段 当前用户 -
DDL mysql 外键约束 mysql外键约束作用
什么数据约束对用户操作表的数据进行约束1.默认作用: 当用户对使用默认值的字段不插入值的时候,就使用默认值。注意: &nbs
DDL mysql 外键约束 字段 外键约束 外键