Php 当我从学生表中删除时,它还会删除投票者表中的项目
我是新手,不知道如何编写好代码,但我想修改系统 目标:当我从学生表中删除'id'时,它也会从选民表中删除'userid' DB的屏幕截图: 学生表 选民表 这是我正在使用的代码。(此代码仅删除students表上的行) 我尝试使用另一个查询,但什么也没发生。有人能帮我修一下密码吗?我是新来的Php 当我从学生表中删除时,它还会删除投票者表中的项目,php,sql,mysqli,Php,Sql,Mysqli,我是新手,不知道如何编写好代码,但我想修改系统 目标:当我从学生表中删除'id'时,它也会从选民表中删除'userid' DB的屏幕截图: 学生表 选民表 这是我正在使用的代码。(此代码仅删除students表上的行) 我尝试使用另一个查询,但什么也没发生。有人能帮我修一下密码吗?我是新来的 <?php ob_start(); session_start(); if (!isset($_SESSION['id'])){ header("location:../login.php
<?php ob_start();
session_start();
if (!isset($_SESSION['id'])){
header("location:../login.php");
}
?>
<?php
include('../connect.php');
$id=$_GET['id'];
$del = mysqli_query($connection,"DELETE FROM students WHERE id='$id'");
?>
MySQL:
您可以按如下方式删除:
DELETE users
FROM users
INNER JOIN voters
ON users.id = voters.userid
WHERE users.name = 'Jordan Santos';
有关数据的示例,请参见。(您可以使用#
注释掉DELETE
语句以查看查询结果,而不删除任何内容。)
博士后:
您可以使用两个(即,WITH
子句)来删除每个表中的内容:
WITH user_deletion AS (
-- this deletes the user based on username
DELETE
FROM users u
WHERE username='Dad'
RETURNING id, username
),
vote_deletion AS (
-- this gets the deleted user_id from above and deletes the corresponding vote(s)
DELETE
FROM votes
WHERE user_id = (SELECT id FROM user_deletion)
RETURNING vote_id, user_id, vote
)
-- this runs the DELETE statements in the clauses above
SELECT udel.*, vdel.*
FROM user_deletion udel
INNER JOIN vote_deletion vdel
ON udel.id = vdel.user_id;
有关数据的Postgres示例,请参阅,该示例显示删除前后的结果。这是使用任何RDBMS时所需的功能。i、 e.当有两个表之间具有外键关系
且第一个表的外键
是第二个表的主键时。然后,删除第一个表记录将触发删除第二个表中与其关联的记录。
这被称为级联删除,下面的定义对其进行了更好的解释。
带有级联删除的外键意味着如果父表中的记录被删除,则子表中的相应记录将自动被删除。这在SQL Server中称为级联删除。请提供包含所有主键和外键的表结构。为什么不对投票者运行另一个删除操作?似乎已将两个表连接起来。学生表“id”列中包含投票者表“userid”。请阅读cascade delete
。