Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL의 다양한 테이블에 대해 기본 키를 외부로 참조하는 방법은 무엇입니까?


다음은 구문입니다 -

alter table yourSecondTableName
add constraint `yourConstraintName`
foreign key(`yourSecondTableNamePrimaryKey`)
references yourFirstTableName(yourFirstTablePrimaryKeyColumnName);

위의 구문을 이해하기 위해 먼저 테이블을 생성하겠습니다 -

mysql> create table demo65
−> (
−> id int not null primary key,
−> name varchar(20)
−> );
Query OK, 0 rows affected (0.57 sec)

다음은 두 번째 테이블을 생성하는 쿼리입니다 -

mysql> create table demo66
−> (
−> user_id int not null primary key,
−> address varchar(200)
−> );
Query OK, 0 rows affected (1.80 sec)

다음은 기본 키를 외래 키로 참조하는 쿼리입니다 -

mysql> alter table demo66
−> add constraint `id_fk`
−> foreign key(`user_id`)
−> references demo65(id);
Query OK, 0 rows affected (3.76 sec)
Records: 0 Duplicates: 0 Warnings: 0

SHOW CREATE TABLE 명령어를 이용하여 테이블의 전체적인 설명을 확인해보자. 다음은 쿼리입니다 -

mysql> show create table demo66;

이것은 다음과 같은 출력을 생성합니다 -

+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table +--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| demo66 | CREATE TABLE `demo66` (
`user_id` int NOT NULL,
`address` varchar(200) DEFAULT NULL,
PRIMARY KEY (`user_id`),
CONSTRAINT `id_fk` FOREIGN KEY (`user_id`) REFERENCES `demo65` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)