티스토리 뷰
1.foreign key 추가
alter table [추가할테이블명] add constraint [제약조건명] foreign key(컬럼명) references [부모테이블명] (PK컬럼명) [ON DELETE CASCADE / ON UPDATE CASECADE];ON DELETE CASCADE
외래 키에서 참조하는 키가 포함된 행을 삭제하려고 하면 해당 외래 키가 포함되어 있는 모든 행도 삭제ON UPDATE CASCADE
외래 키에서 참조하는 키 값이 포함된 행에서 키 값을 업데이트 하면 해당 외래 키를 구성하는 모든 값도 키에 지정된 새 값으로 업데이트되도록 지정
2. foreign key 삭제
alter table [테이블명] drop foreign key [제약조건명];3. foreign key 확인 방법
3.1 테이블 기준 확인select * from information_schema.table_constraints where table_name = '테이블명';3.2 데이터베이스 기준 확인select * from information_schema.table_constraints where constraint_schema = '데이터베이스명';MySQL MariaDB/DB,Table 정보
2021. 8. 13.
#---foreign key 참조정보 조회 (테이블별)
SELECT *
FROM information_schema.key_column_usage
WHERE table_name = '테이블명';
#---foreign key 참조정보 조회 (테이터베이스 별)
SELECT *
FROM information_schema.key_column_usage
WHERE constraint_schema = '테이블명';
CONSTRAINT_CATALOG | 항상 #def. |
CONSTRAINT_SCHEMA | 제약 조건의 데이터베이스 이름 |
CONSTRAINT_NAME | 제약 조건의 이름( PRIMARY기본 키의 경우). |
TABLE_CATALOG | 항상 #def. |
TABLE_SCHEMA | 열 제약 조건의 데이터베이스 이름 |
TABLE_NAME | 열 제약 조건의 테이블 이름 |
COLUMN_NAME | 제약 조건의 열 이름 |
ORDINAL_POSITION | 제약 조건 내에서 열의 위치입니다. |
POSITION_IN_UNIQUE_CONSTRAINT | 외래키의 고유 제한 조건에 위치. |
REFERENCED_TABLE_SCHEMA | 외래 키의 경우 참조된 데이터베이스 이름입니다. |
REFERENCED_TABLE_NAME | 외래 키의 경우 참조된 테이블 이름. |
REFERENCED_COLUMN_NAME | 외래 키의 경우 참조된 열 이름 |
//mariadb.com/kb/en/information-schema-key_column_usage-table/
References : 외래키 조회
1. Query
SELECT uc.constraint_name, uc.table_name, ucc.column_name, uc.constraint_type, uc.r_constraint_name
FROM user_constraints uc, user_cons_columns ucc
WHERE uc.constraint_name = ucc.constraint_name;
2. Constraint_Type
- P : Primary Key
- R : Foreign Key
- U : Unique
- C : Not Null, Check
728x90
저작자표시
'Programming > Databse' 카테고리의 다른 글
2018.12.05 |
2018.11.26 |
2018.07.02 |
2018.06.12 |
2017.11.15 |
개발자의 끄적끄적
개발/sql
[sql/mysql] mysql foreign key check example / mysql 외래키 확인 방법
효벨 2021. 8. 21. 02:00
[sql/mysql] mysql foreign key check example / mysql 외래키 확인 방법
mysql 에서
특정 테이블이나
데이터베이스 전체에 적용이 되어있는
foreign key 를 확인해야 하는 경우가 있습니다.
그럴때는 아래 쿼리로 확인이 가능합니다!
1. 특정 테이블에 생성되어 있는 foreign key 확인 방법
select * from information_schema.table_constraints where table_name = 'TABLE NAME';2. 특정 데이터베이스에 생성되어 있는 foreign key 확인 방법
select * from information_schema.table_constraints where constraint_schema = 'DATABASE NAME';참고들 하세요!