Sql 删除时同步两个数据库表中的数据
这是我的学校项目。我在埃弗鲁姆区。我试图删除一个用户,被删除用户的所有线程和回复也将被删除Sql 删除时同步两个数据库表中的数据,sql,ms-access,Sql,Ms Access,这是我的学校项目。我在埃弗鲁姆区。我试图删除一个用户,被删除用户的所有线程和回复也将被删除 public boolean deleteUser() { boolean success = false; DBController db = new DBController(); db.setUp("IT Innovation Project"); String sql = "DELETE FROM forumUsers where users_id = "
public boolean deleteUser() {
boolean success = false;
DBController db = new DBController();
db.setUp("IT Innovation Project");
String sql = "DELETE FROM forumUsers where users_id = " + userID + "";
if (db.updateRequest(sql) == 1)
success = true;
db.terminate();
return success;
}
此方法检索表的第一列的值并将其存储为userID。然后,它将执行deletesql语句来删除某个用户
public boolean deleteThread() {
boolean success = false;
DBController db = new DBController();
db.setUp("IT Innovation Project");
String sql = "DELETE FROM forumTopics where topic_id = " + threadID
+ "";
if (db.updateRequest(sql) == 1)
success = true;
db.terminate();
return success;
}
对于这个方法,它将获取显示所有线程的另一个表的第一列的值,并执行delete sql语句
但是,在我删除了一些用户之后,被删除用户的线程和回复仍然存储在数据库中。我目前在数据库中使用一个用户表和一个线程表。有什么方法可以让这两个表都“同步”吗?是内部连接吗
提前感谢。这似乎是使用级联删除()建立关系的完美案例 级联更新和删除 对于强制引用完整性的关系,您可以 指定是否希望Microsoft Access自动级联 更新或删除相关记录。如果设置这些选项, 删除和更新通常会被阻止的操作 允许引用完整性规则。当您删除记录或 更改主表中的主键值,Microsoft Access会 对相关表进行必要的更改以保留引用 正直 但是请注意,级联删除应该非常小心地使用。这些帖子涉及SQL Server,但这些想法适用于任何数据库:
那我该怎么办?我现在有点困惑你想做什么?这是您的项目,因此您必须决定是否应在这么多天内将该用户标记为已删除,并且只包括未标记为已删除的用户的记录,或者您是否希望将记录复制到存档然后删除,或者您的法律规定,一旦用户说要删除,删除所有记录是您的义务。因此,我只需在sql语句中加入delete CASCADE,即可创建用户、线程和回复?对不起,我的错误。我忘了提到这是一个管理网站。只有管理员可以执行删除。您提到MS Access,这意味着您有一个用于设计表、关系和查询的界面。我将使用它来正确构造数据库,然后编写代码。