기타/🚨 에러

[에러잡자] MySQL/MariaDB # name ' ' ignored for primary key

둥굴둥굴둥굴레차 2021. 7. 30. 22:44

 

상황설명

 

sample이란 테이블을 만들어주기 위해서 HeidiSQL을 사용해 아래의 코드를 실행시켰다.

CREATE TABLE sample(
	product_a CHAR(10),
	product_b CHAR(10),
	product_c CHAR(10) NOT NULL,
	product_d CHAR(10) NOT NULL,
	CONSTRAINT product_category_group_pk PRIMARY KEY (product_a, product_b)
	);

 

 

그리고 얻은 에러

 

 

 

이 에러창을 만났다고 해서 테이블이 생성되지 않은 것은 아니다.

이유는 아래에!

 

 

에러가 생긴 이유

위에 내가 테이블을 만들어주려고 짠 쿼리문을 잘 살펴보면,

나는 pk를 구성하는 칼럼을 2개로 만들어주었고 그 앞에 이름(product_category_group_pk)을 붙여주려고 했었다.

CONSTRAINT product_category_group_pk PRIMARY KEY (product_a, product_b)

 

그래서 생긴 에러다!

 

즉, 내가 pk값에다가 이름을 붙여주려해도 어쨌든 결국엔 PRIMARY KEY라는 이름으로서 보여질 것이기 때문에 무시했다(ignored)는 말이다.

 

 

다음에 같은 실수를 해도 결국엔 테이블이 잘 만들어지긴 할것이다.

하지만 정확히 알고 넘어가자!

 

아래의 코드는 내가 임의로 pk에 붙여준 이름을 삭제한 상태의 코드!

이 코드로 테이블을 만들어주면 에러없이 테이블을 만들 수 있다.

CREATE TABLE sample(
	product_a CHAR(10),
	product_b CHAR(10),
	product_c CHAR(10) NOT NULL,
	product_d CHAR(10) NOT NULL,
	CONSTRAINT PRIMARY KEY (product_a, product_b)
	);