php - 在没有 ON CASCADE 的情况下准备多行 PHP 代码中的语句
问题描述
有什么办法可以用更少的行来编写这些 sql 语句吗?
$sentence_1 = $conn->prepare("DELETE FROM us_sub WHERE user_id_fk=?");
$sentence_1->bind_param("i", $id);
$sentence_1->execute();
$sentence_2 = $conn->prepare("DELETE FROM users WHERE id=?");
$sentence_2->bind_param("i", $id);
$sentence_2->execute();
它的作用是从表“ users
”中删除用户,但由于它具有外键,因此必须先从“ us_sub
”表中删除它。
我只是想知道是否可以在不使用 ON DELETE CASCADE 的情况下在更少的行上完成它,但如果它是正确的,我可以离开它。
解决方案
当表中的记录被删除时,您可以使用 MySQL 引用操作ON DELETE CASCADE
删除外部记录users
在您的us_sub
表中,像这样指定外键:
CREATE TABLE us_sub (
--All the fields
FOREIGN KEY (us_id_fk) REFERENCES users (id) ON DELETE CASCADE
);
推荐阅读
- git - 无业游民机器上的 SSH 密钥问题和 Mac 上的 Github
- c# - Microsoft.AspNetCore.Mvc.Razor.RazorPage
.Model.get 返回 null - regex - 正则表达式搜索子字符串
- python-3.x - Python中的搜索优化
- javascript - (0 , _reactRouterDom.useHistory) 不是函数
- php - 在 WordPress 中使用 Timber/Twig 将父子类别与帖子分组并显示
- java - 当字符串的长度不同时,基数排序会错误地对字符串数组进行排序
- c# - 如何从自定义剃须刀组件公开 Blazorise TextEdit 的现有 @bind- 属性
- reactjs - 测试通过,但出现错误消息“错误:连接 ECONNREFUSED 127.0.0.1:80”
- python-3.x - 文件夹路径中三个级别的一个衬里代码