我正在开发基于web的应用程序,我需要删除父条目,如果用户认为它将不需要维护。如果父条目在子表中没有任何记录,那么条目将被删除,但是如果它在子表中有记录,那么我希望显示错误消息,其中存在条目。
我采用的是使用jsp和servlet的MVC架构。
发布于 2015-01-19 11:58:28
注意,如果您的表定义得很好,我的意思是,子记录必须引用父记录(请阅读外键)。然后,如果尝试删除父记录,则有许多选项:
1-您可以允许默认模式:如果不首先删除子模式,就不能删除父模式(我认为这是您希望从描述中删除的)。
2-当你删除父母时,你可以“说”给mysql删除所有的子记录。
有关这方面的更多信息,请阅读以下文章:Foreign key constraints: When to use ON UPDATE and ON DELETE
假设您想要遵循第一个选项,当您想要删除父键时,可能会发生两种情况。
没有孩子的记录,所以一切都按照你的期望进行。
2-您有引用要删除的父记录的子记录。在这种情况下,mysql不会删除父记录,并且会用代码1217返回一个错误(不能删除或更新父行:外键约束失败)。然后你就可以检测到错误了。然后做你假装要做的事情,在这种情况下,向客户端显示一个错误消息。为了显示这条信息,下面是我写这个答案之前发布的评论的副本:
一旦检测到,就有两个选项,可以将错误发送到jsp页面。您可以使用用户会话发送它,或者,当您重定向到jsp页面时,您可以在url中发送一个属性,比如www.my-app./jsppage? error =1。然后jsp页面获取该属性并显示正确的错误消息。
https://stackoverflow.com/questions/27982263
复制相似问题