티스토리 뷰
primary key는 테이블의 레코드(열)을 유니크하게 구분짓게 해주는 특정 컬럼 지정하는 키를 말함.
foreign key는 다른 테이블의 primary key를 참조하는 키 즉, 하나의 테이블로는 만들어 질 수 없음.
예) 1번 테이블의 primary key를 2번 테이블에서 foreign key로 사용을 하고자 한다면 기본값이 foreign key를 체크하는 상태(SET FOREIGN_KEY_CHECKS = 1;)이므로 기본이 되는 1번 테이블을 먼저 생성 후 2번 테이블을 생성해야 한다.
혹시 어떠한 이유로인해 foreign key로 설정 된 2번 테이블을 1번 보다 번저 생성을 해야 할 상황이 발생한다면 foreign key를 체크하는 상태를 SET FOREIGN_KEY_CHECKS = 0; 적용하여 테이블 생성시 foreign key 체크를 하지 않게 하여야 한다.
그렇지 않을 경우 아래와 같은 에러구문이 발생한다.
ERROR 1005 (HY000): Can't create table './database_name/table_name.frm' (errno: 150) |
a_tbl, b_tbl 두개의 테이블이 있다고 하자
create table a_tbl(
|
create table b_tbl(
CASCADE : 참조키가 삭제되거나 업데이트 되면 동일하게 foreign key도 동일하게 맞춤. |
각 테이블에 데이터 입력를 입력하자.
insert into a_tbl values('happy','hong gil dong');
+----------+-----------------+
|
insert into b_tbl values('happy','010-1234-5678');
+----------+---------------+
|
각 두테이블을 조인하자.
mysql> select a.user_id, b.user_id, a.user_name, b.user_tel from a_tbl a join b_tbl b where a.user_id=b.user_id; +----------+----------+-----------------+---------------+ | user_id | user_id | user_name | user_tel | +----------+----------+-----------------+---------------+ | appleman | appleman | lee soon shin | 011-4321-8765 | | happy | happy | hong gil dong | 010-1234-5678 | | keeper | keeper | lee myoung park | 016-9876-5432 | +----------+----------+-----------------+---------------+ |
참조키를 업데이트한 후에 확인하자.
mysql> update a_tbl set user_id='sadman' where user_id='happy';
mysql> select a.user_id, b.user_id, a.user_name, b.user_tel from a_tbl a join b_tbl b where a.user_id=b.user_id; |
- Total
- Today
- Yesterday
- 시작메뉴초기화
- 함양 나들이
- @tistory.com
- antimalware
- 윈도우 인코딩 설정
- 보라매공원
- Variable-Length Argument Lists
- 화면잠금 단축아이콘
- CDPUserSvc
- 크리스마스 파티
- Cross-origin
- d90
- One UI
- 은행나무숲
- 테더링 링크
- 모데기
- CORS
- 모데기 모임
- 64비트
- 볼링
- Vista
- 제주도기행
- 옹이생일
- 작업표시줄투명처리
- win10
- 제약산
- 오라클 계정 생성
- UI변경
- TMP
- cvs설정
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |