在不使用ON CASCADE的情况下,以各种PHP代码行准备语句

时间:2019-05-19 19:07:31

标签: php mysql

有什么方法可以用更少的行写这些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的情况下以较少的行数执行操作,但是如果这样正确,我可以将其保留。

1 个答案:

答案 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
);