will come true

[MySQL / MariaDB] Name 'constraint_name' ignored for PRIMARY key. 본문

Etc.

[MySQL / MariaDB] Name 'constraint_name' ignored for PRIMARY key.

haehyun 2021. 11. 18. 00:31

에러

CREATE TABLE 문을 사용해 테이블을 생성하는 과정에서 아래와 같은 메시지가 출력됐다.
아래는 선수 정보를 저장하는 PLAYER 테이블의 생성 SQL문이다.

Name 'player_id_pk' ignored for PRIMARY key.

 

원인

기본키(PK) 제약조건을 지정하는 아래 문장때문에 발생하는 에러로, 기본키(Primary Key) 제약조건은 'PRIMARY'라는 이름을 기본으로 사용하기 때문에 내가 지정한 제약조건명(player_id_pk)를 무시하겠다는 뜻의 메시지이다.

CONSTRAINT player_id_pk PRIMARY KEY (player_id)

제약조건명 생략시 DEFAULT값

  • PRIMARY KEY : 'PRIMARY'
  • FOREIGN KEY : '테이블명_ibfk_1', '테이블명_ibfk_2', ....

 

해결

위와 같은 메시지가 표시되어도 테이블은 정상적으로 생성되기 때문에 별다른 조치는 필요없으나,
위 메시지대로 앞으로는 PK 제약조건 선언 시 별도 제약조건명을 지정해주지 않으면 된다.

 

CREATE TABLE player(
	player_id char(7) NOT NULL,
	player_name varchar(20) NOT NULL,
	team_id char(3) NOT NULL,
	e_player_name varchar(40),
	nickname varchar(30),
	join_yyyy char(4),
	position varchar(10),
	back_no TINYINT,
	nation varchar(20),
	birth_date date,
	solar char(1),
	height SMALLINT,
	weight SMALLINT, 
	CONSTRAINT PRIMARY KEY (player_id));
Comments