2016-10-08 6 views
0

일반적인 열을 공유하는 두 개의 테이블을 만들려고합니다. 이 테이블은 현재 모두 비어있어 모든 데이터가 적절하게 링크 된 후에 데이터를 추가하려고합니다. 구문 오류의 맨 아래로 갈 수없는 것 같습니다. '게시자'테이블을 만들 수는 있지만 문제는 없지만 다음 테이블의 외래 키로 기본 키 'publishername'을 참조 할 수 없습니다. mySQL : 외래 키를 만들 때 오류가 발생했습니다.

나는 지칠대로 지친 E에게

RROR 1064 "라인 1에 가까운 '참조 게시자 (PUBLISHERNAME를))'"얻는다.

이전에 이와 비슷한 구문을 사용했기 때문에 길을 잃었습니다. 미리 감사드립니다! 당신이 외부 키의 길이를주지 않았다처럼


create table publisher (
publishername varchar(30) primary key, 
city varchar(15), 
country varchar(10), 
telephone varchar(15), 
yearfounded int(4)); 

create table book (
booknumber int(3) primary key, 
bookname varchar(50), 
publicationyear int(4), 
pages int(4), 
publishername varchar references publisher(publishername)); 
+0

외래 키 구문을 찾으십시오. – Mihai

+0

이것은 게시자 이름이 변경되어 잘못된 디자인입니다. 그것은 얇은 auto_increment INT 또는 고유 한 것이어야합니다 – Drew

+0

이 문제는 1064 오류를 참조하지만 더 많은 디자인 문제입니다. 따라서 속는 사람은 목표를 가까이서 망치. – Drew

답변

0

는 것 같습니다. 이것은 잘 작동합니다. 당신은 그것을 here에서 확인할 수 있습니다.

create table publisher (
publishername varchar(30) primary key, 
city varchar(15), 
country varchar(10), 
telephone varchar(15), 
yearfounded int(4)); 

create table book (
booknumber int(3) primary key, 
bookname varchar(50), 
publicationyear int(4), 
pages int(4), 
publishername varchar(30) references publisher(publishername)); 
+0

와우. 나는 그것을 보지 못했다고 나는 믿을 수 없다. 어떤 이유로, 기본 키에 대한 외래 키 참조가 자동으로 길이를 상속한다고 생각했습니다. 그 오해를 해결해 주셔서 감사합니다! –

+0

문제는 @ W.B :) – asfandahmed1

관련 문제