有什么方法可以用更少的行写这些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的情况下以较少的行数执行操作,但是如果这样正确,我可以将其保留。
答案 0 :(得分:1)
当users
表中的外部记录被删除时,您可以使用MySQL引用操作ON DELETE CASCADE
删除外部记录
在us_sub
表中,如下指定外键:
CREATE TABLE us_sub (
--All the fields
FOREIGN KEY (us_id_fk) REFERENCES users (id) ON DELETE CASCADE
);