我有3个表:lt_hdefaults,lt_hperiods和lt_hrules.在lt_hdefaults中,特定年份的属性有一行.在lt_hperiods表中,可能有多个期间,称为季节.在lt_hrules表中,每个期间可能有多个规则.现在,我无法进行的工作:当用户从lt_hdefaults删除记录时,应从lt_hperiods和lt_hrules表中删除与已删除记录相关的其他数据.我正在尝试通过使用

FOREIGN KEY (lt_year,lt_id) REFERENCES lt_hdefaults(lt_year,lt_id) ON DELETE CASCADE

但是,它不起作用.我知道它看起来很长,但不是很复杂.如果有人有任何想法,我将不胜感激.我知道如何使用mysql,但是我不是这方面的专家.非常感谢.

以下示例:

CREATE TABLE IF NOT EXISTS lt_hdefaults (

lt_year year(4) NOT NULL DEFAULT '0000',

lt_id int(255) NOT NULL DEFAULT '0',

period_name varchar(45) NOT NULL DEFAULT 'Default',

min_stay int(10) NOT NULL DEFAULT '1',

max_stay int(10) NOT NULL,

weekly_rate float(10,2) NOT NULL,

nightly_rate float(10,2) NOT NULL,

PRIMARY KEY (lt_year,lt_id)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS lt_hperiods (

period_id int(255) NOT NULL ,

lt_id int(255) NOT NULL,

lt_year year(4) NOT NULL DEFAULT '0000',

period_name varchar(45) NOT NULL,

min_stay int(10) NOT NULL,

max_stay int(10) NOT NULL,

fromDate date NOT NULL,

toDate date NOT NULL,

weekly_rate float(10,2) DEFAULT NULL,

nightly_rate float(10,2) NOT NULL,

arriveDepartDays varchar(150) DEFAULT 'sunday,monday,tuesday,wednesday,thursday,friday,saturday',

noArriveDepartDays varchar(150) DEFAULT NULL,

PRIMARY KEY (period_id),

FOREIGN KEY (lt_year,lt_id) REFERENCES lt_hdefaults(lt_year,lt_id) ON DELETE CASCADE

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=107 ;

CREATE TABLE IF NOT EXISTS lt_hrules (

period_id int(255) NOT NULL,

lt_id int(255) NOT NULL,

lt_year year(4) NOT NULL DEFAULT '0000',

rule_name varchar(45) NOT NULL,

night_of_stay int(10) NOT NULL,

fixed_rate float(10,2) NOT NULL,

PRIMARY KEY (period_id,lt_id,night_of_stay),

FOREIGN KEY (period_id) REFERENCES lt_hperiods(period_id) ON DELETE CASCADE

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO lt_hdefaults (lt_year, lt_id, period_name, min_stay, max_stay, weekly_rate, nightly_rate, min_guests, max_guests, surchargeAboveGuests, chargePerGuestFee, bondFee, cleaningFee, bookingServiceFee) VALUES

(2010, 2, 'Default', 0, 0, 1200.00, 171.43, 2, 5, 6, 85.00, 1000.00, 120.00, 0.00),

(2010, 3, 'Default', 0, 0, 1300.00, 185.71, 2, 5, 6, 44.00, 1000.00, 120.00, 0.00);

INSERT INTO lt_hperiods (period_id, lt_id, lt_year, period_name, min_stay, max_stay, fromDate, toDate, weekly_rate, nightly_rate, arriveDepartDays, noArriveDepartDays) VALUES

(105, 3, 2010, 'winter', 2, 66, '2010-12-22', '2011-01-15', 1500.00, 214.29, 'Monday,Tuesday,Wednesday,Thursday', 'Friday,Saturday,Sunday'),

(106, 3, 2010, 'summer', 2, 77, '2011-01-14', '2011-01-28', 4000.00, 571.43, 'Monday,Tuesday,Wednesday,Thursday,Friday,Saturday', 'Sunday');

INSERT INTO lt_hrules (period_id, lt_id, lt_year, rule_name, night_of_stay, fixed_rate) VALUES

(106, 3, 2010, 'r2', 2, 222.00),

(106, 3, 2010, 'r1', 1, 111.00),

(105, 3, 2010, 'r2', 2, 222.00),

(105, 3, 2010, 'r1', 1, 111.00);

解决方法:

ENGINE = MyISAM

标签:mysql,cascading-deletes,cascade

来源: https://codeday.me/bug/20191013/1909934.html

mysql alert on delete cascade_mysql-我的“ ON DELETE CASCADE”不起作用相关推荐

  1. mysql删除有外链索引数据,Cannot delete or update a parent row: a foreign key constraint fails 问题的解决办法

    mysql删除有外链索引数据,Cannot delete or update a parent row: a foreign key constraint fails 问题的解决办法 参考文章: (1 ...

  2. 转载:主外键关联删除(on delete set null和on delete cascade)

    本文对mysql也成立.把创建表的数据类型从oracle支持的换成mysql支持的就行了,即: number换成int, varchar2换成varchar. 创建外键后,表的结构为: CREATE ...

  3. js delete删除对象属性,delete删除不了变量及原型链中的变量

    js delete删除对象属性,delete删除不了变量及原型链中的变量 一.delete删除对象属性 function fun(){this.name = 'gg';}var obj = new f ...

  4. DB2数据库关于delete in id和batch delete的性能对比

    删除量:一次删除10000条. 第一种方式,通过delete from 表 where id in(一堆ID)的方式删除数据,首先把需要删除的数据从数据库查询出来,将ID传给mybatis框架,展示如 ...

  5. MySQL 系统自带的数据库有哪些?每个数据库的作用是什么?

    /********************************FileName: MySQL自带数据库说明*Author: weibo*Version: v1.0*Date: 2016.5.12* ...

  6. c语言中delete函数用法,c中delete的用法

    c中delete的用法的用法你知道吗?下面小编就跟你们详细介绍下c中delete的用法的用法,希望对你们有用. c中delete的用法的用法如下: "new"是C++的一个关键字, ...

  7. mysql alert on delete cascade_如何在mysql中删除级联使用?(How do I use on delete cascade in mysql?)...

    如何在mysql中删除级联使用?(How do I use on delete cascade in mysql?) 我有一个组件数据库. 每个组件都是特定的类型. 这意味着组件和类型之间存在多对一的 ...

  8. mysql外键约束cascade_mysql外键约束foreign key ON DELETE CASCADE ON UPDATE CASCADE

    正 文: 一,什么是foreign key,及其完整性 个人觉得,foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强.关于完整 ...

  9. mysql alert table 日志_MySQL日志

    错误日志 默认在DATADIR目录下 host_name.err 可以通过log-error=[file_name]指定 log-error=/mysql-5.6.22/log/alert.log 二 ...

  10. mysql delete in死锁_mysql 执行delete引发死锁问题

    关于mysql事务引发的死锁异常解决 场景 问题 死锁日志[^2] 锁类型与隔离级别 InnerDB 锁: mysql事务 解决方案 场景 mysql 5.7 InnoDB存储引擎 jdk 8 spr ...

最新文章

  1. hdu 1047 Integer Inquiry
  2. 长沙.NET技术社区·设计到实现
  3. 输入一行电报文字,将字母变成其下一字母(如’a’变成’b’……’z’变成’a’其它字符不变)
  4. iOS-数据持久化-属性列表
  5. python perl正则表达式_python学习笔记(正则表达式)
  6. Python3 离线安装第三方包
  7. 那年我整理的JavaEE面试题
  8. bzoj 1626: [Usaco2007 Dec]Building Roads 修建道路(最小生成树)
  9. Intellij IDEA 导入Maven项目
  10. ubantu卸载MySQL数据库
  11. 微信小程序图片上传并预览
  12. java retainall_Java Set retainAll()用法及代码示例
  13. Python查看函数源码
  14. Linux下qt程序部署到ARM开发板上: error: Upload of file “你的程序“ failed. The server said: “Failure
  15. Oracle 中的 unique index 和 non unique index的区别
  16. matplotlib中箱线图、极线图、阶梯图的绘制
  17. Sublime的实用汉化方法
  18. 水安ABC考试单选练习题库(1)
  19. porphet论文_时间序列神器之争:Prophet VS LSTM
  20. git冲突“accept theirs”和“accept yours”

热门文章

  1. Jeffery Pinto和Om Kharbanda:项目经理的12项工作
  2. matlab数据处理的优缺点,数字滤波的优缺点分析
  3. FileOutputStream方法创建文件并写入数值
  4. 推荐几个免费论文查重网站
  5. 【VOLTE】【SRVCC】【1】 VOLTE SRVCC(SRVCC TO 3GPP)
  6. 数据仓库项目实例(马蜂窝数据仓库)
  7. 数据库-mysql MHA集群方案测试
  8. 2005年上半年程序员上 下午试题及答案
  9. STM32 BOR/POR/PDR
  10. FatalThrowableError in Encrypter.php line 66: Call to undefined function openssl_encrypt()