postgresql 다 중 표 관련 삭제 실현
2740 단어 postgresql다 표연관 성
t_aj_ajfbxx
t_xt_dwxx
두 표 가 연결 되 어 표 의 데 이 터 를 삭제 합 니 다.
delete from db_lx.t_aj_ajfbxx ajfb
USING db_lx.t_xt_dwxx dw
where dw.c_bh=ajfb.c_ssdw and dw.c_sfbh='65';
t 만aj_ajfbxx 표 에서 데이터 가 삭제 되 었 습 니 다.3 표 연결,표 의 데 이 터 를 삭제 합 니 다.
delete from db_lx.t_aj_ajjbxx ajjb
USING db_lx.t_aj_ajfbxx ajfb,db_lx.t_xt_dwxx dw
where ajjb.c_bh = ajfb.c_ajbh and ajfb.c_ssdw=dw.c_bh and dw.c_sfbh='65';
t 만aj_ajjbxx 표 에서 데이터 가 삭제 되 었 습 니 다.추가:PostgreSQL 의 직렬 연결 삭제(메 인 키 삭제 시 외부 키 데이터 기록 동시 삭제)
배경 설명:
최근 프로젝트 에서 관련 된 데이터베이스 테이블 사이 에 등급 연결 관 계 를 설정 합 니 다.즉,테이블 legalpositionsinfo 의 id 는 표 legalapproval 의 외부 키.
현재 id 에 따라 표 legal 을 삭제 하 는 기능 이 있 습 니 다.positionsinfo 의 기록
그러나 프로그램 디 버 깅 삭제 시 다음 과 같은 오 류 를 보고 합 니 다.
update or delete on table "legal_positionsinfo" violates foreign key constraint "legal_approval_position_id_fkey" on table "legal_approval" DETAIL: Key (id)=(1) is still referenced from table "legal_approval".
주로 두 표 사이 에 등급 연결 관계 가 존재 하기 때문에 메 인 키 기록 이 삭제 되면 외부 키 기록 도 동시에 삭제 해 야 한다.해결 방법:
강력 한 데이터베이스 관리 와 디자인 도구 인 Navicat 를 사용 합 니 다.데이터베이스 에 직렬 연결 을 설정 하여 삭제 해 야 합 니 다.NO ACTION 을 CASCADE 로 변경 하면 됩 니 다.
그럼 외부 키 설정 에 있 는 CASCADE,NO ACTION,RESTRICT,SET NULL 은 어떤 뜻 을 의미 하 는 것 일 까?차이 가 뭘 까요?
4.567914.부모 표 delete,update 일 때 하위 표 는 delete,update 에서 관련 기록 을 삭제 합 니 다.
4.567914.부모 표 delete,update 를 할 때 하위 표 는 관련 기록 의 외부 키 필드 가 있 는 열 을 null 로 설정 하기 때문에 하위 표를 디자인 할 때 외부 키 를 not null 로 설정 할 수 없 음 을 주의 하 십시오.
4.567914.부모 표 의 기록 을 삭제 하려 면 하위 표 에 해당 부모 표 와 관련 된 기록 이 있 으 면 부모 표 의 기록 을 삭제 할 수 없습니다.
CASCADE:
RESTRICT 와 같이 먼저 외부 키 를 검사 합 니 다.SET NULL:
부모 표 가 변경 되 었 을 때 하위 표 는 외부 키 열 을 기본 값 으로 설정 하지만 Innodb 는 식별 할 수 없습니다.외부 키 제약 사용 최대 두 가지 상황:
1)부모 표 가 업 데 이 트 될 때 하위 표 도 업 데 이 트 됩 니 다.부모 표 가 삭 제 될 때 하위 표 에 일치 하 는 항목 이 있 으 면 삭제 에 실 패 했 습 니 다.
2)부모 표 업데이트 시 하위 표 도 업데이트 되 고 부모 표 삭제 시 하위 표 와 일치 하 는 항목 도 삭 제 됩 니 다.
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
postgresql의 jsonb 데이터 조회 및 수정 방법jsonb PostgreSQL 문서에서 정의한 데이터 형식 json과 jsonb는 거의 같다.관건적인 차이점은 json 데이터는 JSON 입력 텍스트의 정확한 복사본으로 저장되고 jsonb는 분해된 2진 형식으로 데...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.