Database

MariaDB 제약조건 기본 키 - Constraint Primary Key - PK

carrotweb 2022. 8. 14. 10:03
728x90
반응형

PK (Primary Key – 기본 키)

Table의 각 Recode(레코드 - row)를 Uniquely(고유)하게 식별할 수 있는 값으로 Table에서는 하나의 PK만 있을 수 있습니다. PK는 단일 또는 복수 Column으로 구성됩니다.

 

Table 생성 구문에서 단일 Column을 PK로 생성합니다.

CREATE TABLE IF NOT EXISTS table_name (
	column_name1 data_type,
	column_name2 data_type,
	PRIMARY KEY (column_name1)
);

 

Table 생성 구문에서 복수 Column을 PK_name으로 PK를 생성합니다.

CREATE TABLE IF NOT EXISTS table_name (
	column_name1 data_type,
	column_name2 data_type,
	column_name3 data_type,
	CONSTRAINT PK_name PRIMARY KEY (column_name1, column_name2)
);

 

table_name으로 된 Table에서 PK를 삭제합니다.

ALTER TABLE table_name DROP PRIMARY KEY;

 

table_name으로 된 Table에서 단일 Column PK를 추가합니다.

ALTER TABLE table_name ADD PRIMARY KEY (column_name);

 

table_name으로 된 Table에서 복수 Column을 PK_name으로 PK를 추가합니다.

ALTER TABLE table_name ADD CONSTRAINT PK_name PRIMARY KEY (column_name, column_name);

 

 

MariaDB에 Table 생성하기

-- study Database 선택
USE study;

-- INT_BOARD_TB table이 있으면 삭제
DROP TABLE IF EXISTS INT_BOARD_TB;
-- INT_BOARD_TB table 생성
CREATE TABLE IF NOT EXISTS INT_BOARD_TB (
	BRD_SEQ BIGINT AUTO_INCREMENT NOT NULL COMMENT '게시판 시퀀스',
	BRD_SUBJECT VARCHAR(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '게시판 제목',
	BRD_CONTENT TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '게시판 내용',
	REG_ID VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '등록자 아이디',
	REG_DTM DATETIME DEFAULT NOW() NOT NULL COMMENT '등록 일자',
	MOD_ID VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '변경자 아이디',
	MOD_DTM DATETIME DEFAULT NULL COMMENT '변경 일자',
	PRIMARY KEY (BRD_SEQ)
);

-- MBR_ACCOUNT_TB table이 있으면 삭제
DROP TABLE IF EXISTS MBR_ACCOUNT_TB;
-- MBR_ACCOUNT_TB table 생성
CREATE TABLE IF NOT EXISTS MBR_ACCOUNT_TB (
	MBR_SEQ BIGINT AUTO_INCREMENT NOT NULL COMMENT '사용자 시퀀스',
	MBR_ID VARCHAR(100) NOT NULL COMMENT '사용자 아이디',
	MBR_PW VARCHAR(100) NOT NULL COMMENT '사용자 패스워드',
	MBR_NAME VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '사용자 이름',
	MBR_NICKNAME VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '사용자 닉네임',
	MBR_BIRTHYEAR INT(4) DEFAULT 0 COMMENT '사용자 생년',
	REG_DTM DATETIME DEFAULT NOW() NOT NULL COMMENT '등록 일자',
	MOD_DTM DATETIME DEFAULT NULL COMMENT '변경 일자',
	PRIMARY KEY (MBR_SEQ)
);

 

728x90
반응형