database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 8590 게시물 읽기
No. 8590
기본키를 가지고 다른 테이블까지 영향을 주는 방법?
작성자
souler(souler)
작성일
2009-12-27 10:32ⓒ
2009-12-27 10:33ⓜ
조회수
7,544

비디오 대여점에서 고객과 고객이 빌려간 비디오 리스트를 처리하는 프로그램으로 설명을 드릴께요.

1. tbl_Customer (고객 테이블)

ID USER AGE
1 동네꼬마 8
2 아저씨 45

 2. tbl_Rental (대여 테이블)

LIST ID VIDEO PRICE
1 1 토마스 2500
2 2 애마부인 3500
3 2 터미네이터 3500
4 2 타짜 4000

 

위와 같이 테이블이 되어 설계되어 있어요. 기타 논리적인 문제는 뒤로 해두고!

고객 테이블(tbl_Customer)에서 특정 ID 를 가진 고객을 삭제할 경우에 대여 테이블(tbl_Rental)에서

같은 ID를 가진 행을 같이 지우게 처리하려면 어떻게 해야 하나요?

VIEW 적으로 대조 해보면 이렇게 되겠지요 ->  tbl_Customer.ID = tbl_Rental.ID

아무튼, 위와 같이 처리되게 하려면 어떻게 해야하는지 알려주세요! 기본 SQL 입문서만 가지고서

위와 같은걸 처리하려고 하니, PgSQL 에서 사용되는 트랜젝션이나 트리거 등을 모르면 안되더라구요.

전문서를 하나 구입하던지 해야지 슬퍼요. 도와주세요~

 

이 글에 대한 댓글이 총 4건 있습니다.

Foreign Key 에 대해서 알아보세요

 

on delete cascade 를 주면 자동으로 삭제됩니다.

 

tyro님이 2009-12-27 12:16에 작성한 댓글입니다. Edit

먼저 감사하다는 말씀을 드립니다.

외래키라는 힌트를 가지고 답을 찾으니 금방해결되었습니다.

특히, 캐스캐이드라는 계단식 처리를 이용하여, 참조되는 행을 동시에 삭제할 수 있게 되었네요.

souler(souler)님이 2009-12-27 18:20에 작성한 댓글입니다.

안녕하세요,

'referential integrity' 에 대해서 찾아보시면 RDBMS의 '키'와 '관계'에 대해 더 잘 이해하실 수 있으실 겁니다.

http://en.wikipedia.org/wiki/Referential_integrity

김영우님이 2009-12-29 13:16에 작성한 댓글입니다. Edit

감사합니다~ 새로운 힌트네요!?~

souler(souler)님이 2009-12-29 15:53에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
8594문자열 위치 검색 [3]
이경기
2010-01-04
9107
8592[질문]트리거관한 질문..? [1]
나그네
2009-12-31
7131
8591데이터 베이스를 생성할 때 무의식적으로 설정하는 것 [2]
souler
2009-12-27
7703
8590기본키를 가지고 다른 테이블까지 영향을 주는 방법? [4]
souler
2009-12-27
7544
8589PostgreSQL 한글 설명서에 대해서 [1]
김상기
2009-12-23
8518
8588pg_dump tar 파일 한계 [2]
김상기
2009-12-22
9359
8587libpq로 프로그래밍 시에 TIME_WAIT 문제 [2]
김대청
2009-12-18
7670
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다