Mysql 如何重构此多表delete语句
有人能推荐一种更干净的方法,在一个查询中删除具有一对多关系的行吗 这是可行的,但我不太熟悉Mysql 如何重构此多表delete语句,mysql,sql,using,cascade,sql-delete,Mysql,Sql,Using,Cascade,Sql Delete,有人能推荐一种更干净的方法,在一个查询中删除具有一对多关系的行吗 这是可行的,但我不太熟悉using子句或delete,因此我不完全理解它是如何工作的 DELETE FROM ip_record, entry using ip_record inner join entry where ip_record.site_id = ? and ip_record.ip = ? and ip_record
using
子句或delete
,因此我不完全理解它是如何工作的
DELETE FROM ip_record,
entry using ip_record
inner join entry
where ip_record.site_id = ?
and ip_record.ip = ?
and ip_record.id = entry.ip_id
我有一个想法,这可以通过级联更干净地完成,但我对约束有一种非理性的恐惧。数据库是MySQL。是的,添加如下约束
ALTER TABLE entry
ADD CONSTRAINT constr_entry_fk_ip
FOREIGN KEY fk_ip (ip_id) REFERENCES ip_record (id)
ON DELETE CASCADE ON UPDATE CASCADE
然后你就可以使用
DELETE FROM ip_record
WHERE ip_record.site_id=? and ip_record.ip=?
完成之前需要加入的任务。谢谢,我真的很感谢你带我完成这项任务!