반응형
외래 키 제약 조건이있는 테이블을 변경하려고 할 때 왜 오류가 발생합니까?
다른 모든 특정 기록 테이블 (예 : USER_HISTORY
, BROWSER_HISTORY
, )의 기본 테이블로 사용하는
...). HSTORY
테이블이 1 개 있습니다 PICTURE_HISTORY PICTURE
및 USER
테이블도 호출 될 때 포함했습니다.
HISTORY 표 :
CREATE TABLE IF NOT EXISTS HISTORY
(
ID INT NOT NULL AUTO_INCREMENT,
VIEWERID INT NOT NULL ,
VIEWDATE TIMESTAMP NOT NULL DEFAULT NOW(),
PRIMARY KEY (ID),
FOREIGN KEY (VIEWERID) REFERENCES USER(ID)
)
engine=innodb;
USER 테이블 : (호기심이있는 경우)
CREATE TABLE IF NOT EXISTS USER
(
ID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (ID)
)
engine=innodb;
PICTURE 테이블 : (호기심이 많은 경우)
CREATE TABLE IF NOT EXISTS PICTURE
(
ID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (ID)
)
engine=innodb;
PICTURE_HISTORY 테이블 :
CREATE TABLE IF NOT EXISTS PICTURE_HISTORY LIKE HISTORY;
ALTER TABLE PICTURE_HISTORY
ADD FOREIGN KEY (FOREIGNID) REFERENCES PICTURE(ID);
그러나 이렇게하면 다음과 같은 결과가 나타납니다.
Key column 'FOREIGNID' doesn't exist in table
이것은 먼저 FOREIGNID
를 만들어야한다는 것을 의미하지만 SO에 대한 많은 예제에서 위의 내용이 작동합니다. 왜 이런 일이 발생하는지 아는 사람이 있습니까?
해결 방법
ALTER TABLE PICTURE_HISTORY
ADD COLUMN FOREIGNID INT NOT NULL;
ALTER TABLE PICTURE_HISTORY
ADD FOREIGN KEY (FOREIGNID) REFERENCES PICTURE(ID);
참조 페이지 https://stackoverflow.com/questions/10369271
반응형
'MySql' 카테고리의 다른 글
MySQL UTF-8 : 데이터베이스에서는 올바르게 표시되지만 utf-8 문자 집합에도 불구하고 HTML에서는 표시되지 않습니다. (0) | 2021.02.13 |
---|---|
MySQL 플래그의 데이터 유형은 무엇입니까? (0) | 2021.02.13 |
MySQL IF THEN을 사용한 MySQL 트리거 (0) | 2021.02.13 |
MySQL 설치 중 오류 1045 MySQL (0) | 2021.02.13 |
MySQL "지정된 키가 너무 깁니다. 최대 키 길이는 1000 바이트입니다." (0) | 2021.02.13 |
댓글