Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中更正多表删除的MySQL查询_Mysql_Python 2.7 - Fatal编程技术网

在Python中更正多表删除的MySQL查询

在Python中更正多表删除的MySQL查询,mysql,python-2.7,Mysql,Python 2.7,希望能够从我的页面上的链接中删除一条消息以及与之相关的任何评论。通过搜索,我相信我可能需要在python代码中执行ON-DELETE级联?然而,我不太确定该怎么做?这是我尝试的最后一个查询 @app.route('/messages/<id>/delete') def delete_message(id): query = 'DELETE FROM messages WHERE id = :id AND comments WHERE id = :id' data =

希望能够从我的页面上的链接中删除一条消息以及与之相关的任何评论。通过搜索,我相信我可能需要在python代码中执行ON-DELETE级联?然而,我不太确定该怎么做?这是我尝试的最后一个查询

@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')

关于如何写这篇文章有什么建议吗?

关于删除级联的
你的方法是正确的。然而,这不是在Python代码中执行的操作,而是在设计数据库时正确设置的问题。
如果我们只关注您的表
messages
comments
,则
comments
表与messages有外键关系,这意味着字段
message\u id
链接到字段
messages.id
。这不会自动发生,但在DB Admintool(例如phpMyAdmin、HeidiSQL)中,您需要设置此外键。在这个外键上,您可以将删除时的
选项设置为
CASCADE
,以便在删除邮件时删除您的评论

那你的问题呢

query = 'DELETE FROM messages WHERE id = :id'
将删除具有该id的邮件,并自动删除该邮件的所有注释


我想多做一些解释和说明可能会有所帮助。

@jps谢谢!我去重新定义了我的模式,并向其中添加了级联,效果非常好。
query = 'DELETE FROM messages WHERE id = :id'