微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在SQL中添加删除级联约束

如何解决如何在SQL中添加删除级联约束

我有2个表。表A的列为(aid,name,depart),其中援助是主键。

表B具有(aid1,aid2,aid3,created_by),其中aid1是primary_key。 aid1,adid2和aid3都是表A的主键

我想删除表B中的一条记录,即aid1,同时与删除级联同时删除表A中的所有三个记录。我的疑问是,我应该在哪里放置删除级联约束。我知道在父子关系中,我们需要在子表上放置删除级联,以便在删除父级时也删除子实体,但是在这种情况下,我不知道应该在哪里放置删除级联

解决方法

级联表将在子表上。创建子表时或创建子表后,必须在子表上进行设置。 例如

func fetch<DataType,Params>(_: DataType.Type,from endpoint: Endpoint,method: Method = .GET,params: Params?) -> AnyPublisher<DataType,MyError>
where DataType: Decodable,Params: Encodable
{
    myPublisher(endpoint,method: method,params: params)
        .map(\.data!)
        .mapError { MyError.network(description: $0.errorDescription) }
        .receive(on: DispatchQueue.main)
        .eraseToAnyPublisher()
}

// Overload to handle no parameters
func fetch<DataType>(_ dataType: DataType.Type,method: Method = .GET) -> AnyPublisher<DataType,MyError>
where DataType: Decodable
{
    fetch(dataType,from: endpoint,params: nil as String?)
}


func documents() -> AnyPublisher<[Document],MyError> {
    fetch([Document].self,from: .documents)
}

或 您还可以通过运行此命令来更改表。

CREATE TABLE schools (
  id int auto_increment primary key not null,schoolname varchar(191) not null
);

CREATE TABLE students(
  id int auto_increment primary key not null,studentname varchar(191) not null,school_id int FOREIGN KEY REFERENCES students(id) ONDELETE CASCADE
);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。