물먹는산세베리아

[MySQL] multiple primary key 설정(이미 primary key 있을 때) 본문

DataBase

[MySQL] multiple primary key 설정(이미 primary key 있을 때)

suntall 2022. 9. 28. 16:59

Error

alter table vuln_host_list modify column vuln_host_ip varchar(30) primary key;

 

ERROR 1068 (42000): Multiple primary key defined

 

이미 하나의 컬럼이  auntoincrement로 pk가 설정된 상황이라, 하나 더 추가하려고 하니 안된다.

 

 

primary key 설정을 해제하자..

 

해결

vuln_host_id, vuln_host_ip를 primary key로 지정하려고 한다.

 

1. vuln_host_id의 primary key를 제거한다.

* NULL이 YES로 설정되어 있는 경우 NO로 변경해준다.

ALTER TABLER [테이블명] MODIFY [컬럼명] [타입] NOT NULL; //null설정 no로 변경
ALTER TABLE [테이블명] DROP PRIMARY KEY

* 만약 외래키가 설정되어 있다면 외래키부터 풀어줘야 한다.

 

▶외래키 안 지워질 때(constraint 어쩌구)

https://oo7-0310.tistory.com/283

 

[MySQL] foreign key 잘 안지워질 때

constraint로 설정하는 바람에 실제로 내가 만든 컬럼명과 지금 돌아가고 있는 컬럼명이 달라서일 수도 있다. SHOW CREATE TABLE [테이블명]; 위 명령어를 입력해보자. 잘 보면 foreign key를 준 컬럼이 vuln_s

oo7-0310.tistory.com

 

2. vuln_host_id, vuln_host_ip를 primary key로 지정한다.

ALTER TABLE [테이블명] ADD PRIMARY KEY([컬럼1], [컬럼2]);