希望能够从我页面上的链接中删除邮件及其相关评论。从搜索开始,我相信我可能需要在我的python代码中执行ON DELETE CASCADE?但是,我不太清楚如何去做?这是我试过的最后一个查询
@app.route('/messages/<id>/delete')
def delete_message(id):
query = 'DELETE FROM messages WHERE id = :id AND comments WHERE id = :id'
data = {'id':id}
mysql.query_db(query,data)
return redirect('/wall')
表
USERS
id
first_name
last_name
email
pw_hash
MESSAGES
id
messages
user_id
COMMENTS
id
comments
message_id
user_id
有关如何写出来的任何建议吗?
答案 0 :(得分:1)
您使用ON DELETE CASCADE
的方式正确。但是,这不是您在Python代码中所做的事情,而是在设计数据库时的正确设置问题。
如果我们只关注您的表messages
和comments
,则comments
表与消息具有外键关系,这意味着字段message_id
链接到字段{{ 1}}。这不会自动发生,但在您的DB-Admintool(例如phpMyAdmin,HeidiSQL)中,您需要设置此外键。在此外键上,您可以将messages.id
选项设置为ON DELETE
,以便在删除邮件时删除您的注释。
然后你的查询
CASCADE
将删除包含该ID的邮件,并自动删除该邮件的所有评论。
我认为http://webdevzoom.com/create-edit-delete-foreign-key-phpmyadmin/可能有助于提供更多解释和说明。