본문 바로가기
MySql

MySQL 트랜잭션, 행 수준 잠금 및 외래 키 지원

by 베이스 공부 2020. 12. 25.
반응형

어떤 이유로이 테이블을 만들 수 없습니다.

CREATE TABLE user_role (
  user_id VARCHAR(20) NOT NULL,
  role_id INTEGER UNSIGNED NOT NULL,

  FOREIGN KEY (user_id)
    REFERENCES users(user_id),
  FOREIGN KEY (role_id)
    REFERENCES roles(role_id)
);

다음과 유사한 표에는 문제가 없습니다.

CREATE TABLE role_perm (
  role_id INTEGER UNSIGNED NOT NULL,
  perm_id INTEGER UNSIGNED NOT NULL,

  FOREIGN KEY (role_id)
    REFERENCES roles(role_id),
  FOREIGN KEY (perm_id)
    REFERENCES permissions(perm_id)
);

내가받는 오류 메시지는 다음과 같습니다.

# 1005- 'test.user_role'테이블을 만들 수 없습니다 (errno : 150) (자세히 ...) 트랜잭션, 행 수준 잠금 및 외래 키 지원

어떤 아이디어?

 

해결 방법

 


삭제 된 테이블을 다시 생성하는 경우 테이블을 참조하는 외래 키 제약 조건을 준수하는 정의가 있어야합니다. 올바른 열 이름과 유형이 있어야하며 앞에서 설명한 것처럼 참조 된 키에 대한 인덱스가 있어야합니다. 이것이 충족되지 않으면 MySQL은 오류 1005를 반환하고 오류 메시지에서 오류 150을 참조합니다. 이는 외래 키 제약 조건이 올바르게 형성되지 않았 음을 의미합니다.

roles permissions 테이블에 대한 정의를 제공하지 않고 문서를 의역하기 때문에 추측 하기가 다소 어려운 경우 ...

 

참조 페이지 https://stackoverflow.com/questions/18238321

 

 

반응형

댓글