Postgres DELETE CASCADE 사용 방법

Postgres DELETE CASCADE 사용 방법

2022-06-03 last update

7 minutes reading PostgreSQL
Postgres 데이터베이스 관리는 다른 데이터베이스와 같습니다.CRUD 작업은 데이터베이스 관리에 중요한 역할을 합니다.키 개념은 한 표의 데이터를 다른 표에 연결하고 관계를 맺는 데 광범위하게 사용된다.delete 문장은 다른 테이블에서 기록된 키를 호출할 때 삭제하는 것을 제한합니다.따라서 Postgres의 테이블에서 삭제 작업을 수행하려면 다른 테이블에 대한 의존 관계를 찾는 것이 좋습니다.이 상황에서 삭제를 실행하기 위해서, Postgres의 delete 등급은 다른 테이블과 관련된 기록을 삭제할 수 있습니다.본고는 Postgres에서 종속 연결 작업을 삭제하는 작업과 용법을 소개한다.

선결 조건


delete cascade를 사용하려면 다음 프로그램 세트가 시스템에 있어야 합니다.
  • Postgres 데이터베이스가 설치되어 정상적으로 실행됨:
  • delete cascade 키워드가 표에 정확하게 삽입되었는지 확인하십시오:
  • Postgres delete cascade의 작업 원리


    다중 테이블에서 레코드 연관을 삭제하는 데 사용되는 종속 연결 삭제 작업입니다.delete cascade는 키워드입니다. 의존 항목이 있으면 delete 문장을 삭제할 수 있습니다.삽입 작업 중에 열 속성으로 포함된 종속 연결을 삭제합니다.우리는 delete cascade 키워드 예시를 제공하여 이 키워드를 어떻게 사용하는지 소개했다.
    예를 들어 우리는employee\uid를 외부 키로 사용합니다.하위 테이블에서 employee\u id를 정의할 때 delete cascade는 다음과 같이 ON으로 설정됩니다.
    employee_id INTEGER 참조 종속 연결된 employee 삭제(id)
    id는 employees 테이블에서 추출하고 있습니다. 현재 부모 테이블에Postgres DELETE 동작을 적용하면 관련 데이터도 상응하는 하위 테이블에서 삭제됩니다.

    Postgres delete cascade 사용 방법


    이 섹션에서는 Postgres 데이터베이스에 종속 연결 삭제를 적용하도록 안내합니다.다음 절차는 부모 테이블과 하위 테이블을 만들고 delete cascade를 적용합니다.그럼 시작합시다.
    1단계: 데이터베이스에 연결하고 테이블 만들기
    다음 명령은 라는 Postgres 데이터베이스를 연결하도록 안내합니다.
    \c 

    데이터베이스 연결에 성공한 후, 우리는staff라는 테이블을 만들었고, 다음 코드 줄을 실행하여staff표에 몇 열을 만들었습니다.staff 테이블은 여기서 상위 테이블로 사용됩니다.
    CREATE TABLE staff (id SERIAL PRIMARY KEY, name VARCHAR (50), designation VARCHAR (50));

    현재, 우리는 다음 명령을 사용하여 info라는 다른 테이블을 만들었습니다.이 테이블에서 info표는 서브테이블이라고 하고staff표는 부표라고 부른다.여기서 중요한 추가는 delete cascade 모드를 ON으로 설정하는 것입니다.delete 등급은 (staff\uid)라는 외부 키 열에 사용됩니다. 이 열은 부모 테이블의 메인 키가 되기 때문입니다.
    CREATE TABLE info (info_id INTEGER NOT NULL, staff_id INTEGER REFERENCES staff (id) ON delete cascade, team_lead VARCHAR (50), PRIMARY KEY (info_id,staff_id));

    단계 2: 테이블에 데이터 삽입
    삭제 과정을 깊이 연구하기 전에 표에 데이터를 삽입하십시오.따라서 우리는 다음 코드를 실행하여 데이터를staff표에 삽입했습니다.
    INSERT INTO staff (id, name, designation) VALUES ('1','John','Reviewer'),
    
    ('2','Jack','Instructor'), ('3','Jerry',Editor), ('4','Pock','Author');

    다음 명령을 사용하여 staff 테이블의 내용을 볼 수 있습니다.
    SELECT * FROM staff;

    이제 하위 테이블에 내용을 추가합니다.우리의 예에서 하위 테이블의 이름은 info입니다. 우리는 다음과 같은 몇 줄의 Postgres 문장을 실행하여 데이터를 info 테이블에 삽입했습니다.
    INSERT INTO info (info_id, staff_id, team_lead) VALUES ('1','4','Sam'),
    
    ('2','3','Tim'), ('3','1','Brook'), ('4','2','Pane');

    삽입에 성공하면 SELECT 문구를 사용하여 info 테이블의 내용을 가져옵니다.
    >SELECT * FROM info;

    주의: 이 테이블이 있고 하위 테이블에서 delete cascade를 ON으로 설정하면 이전 2단계를 건너뛸 수 있습니다.
    3단계: 종속 연결 삭제 적용
    Staff 테이블의 id 필드 (메인 키) 에 DELETE 작업을 적용하면 info 테이블에서 모든 실례를 삭제합니다.다음 사령부는 이 방면에서 우리에게 도움을 제공했다.
    DELETE FROM staff WHERE id=3;

    삭제를 성공적으로 수행한 후 삭제 종속 연결이 적용되었는지 확인하십시오.이를 위해 부모 테이블과 하위 테이블에서 내용을 가져옵니다.
    staff표에서 데이터를 검색할 때 id=3의 모든 데이터가 삭제되는 것을 볼 수 있습니다.
    >SELECT * FROM staff;

    그 다음에 서브테이블에 SELECT 문구를 적용해야 합니다.적용하면 staff\uid=3과 관련된 필드가 하위 테이블에서 삭제됩니다.
    >SELECT * FROM info;

    결론


    Postgres는 데이터베이스의 데이터를 조작하기 위해 실행할 수 있는 모든 작업을 지원합니다.delete cascade 키워드를 사용하면 다른 테이블과 관련된 데이터를 삭제할 수 있습니다.일반적으로 DELETE 문구에서는 이러한 작업을 허용하지 않습니다.이 묘사적인 글은 Postgres가 등급을 삭제하는 작업과 용법을 소개했다.하위 테이블에서 delete cascade 동작을 사용하는 것을 배웠고, 부모 테이블에 delete 문장을 적용할 때, 하위 테이블에서 모든 실례를 삭제합니다.