2014-12-05 7 views
1

MySQL은 저에게 새로운 것입니다. 필자는 보통 Oracle 데이터베이스를 사용합니다. 필자는 phpMyAdmin을 사용하기 위해 Oracle 10g에서 MySQL 구문으로 약간의 데이터베이스를 변환해야합니다.MySQL - # 1215 - 외래 키 제약 조건을 추가 할 수 없습니다.

모든 것을 시도했지만 코드에서 아무런 문제가 보이지 않습니다. 나는이 두 테이블을 가지고 있으며 외래 키로 연결하지 않을 것입니다. 오류 코드

CREATE TABLE Supplier 
(
    ID INT UNSIGNED NOT NULL AUTO_INCREMENT , 
    Company_name  VARCHAR (100) , 
    Company_address  VARCHAR (100) , 
    Bank_account  VARCHAR (100) , 
    CONSTRAINT PK_Supplier PRIMARY KEY (ID) 
) ; 

CREATE TABLE Meat 
(
    ID INT UNSIGNED NOT NULL AUTO_INCREMENT , 
    Initial_weight  VARCHAR (50) , 
    Actual_weight  VARCHAR (50) , 
    Date_of_delivery DATETIME , 
    Durability   DATETIME , 
    Supplier_ID   DECIMAL(38) NOT NULL , 
    CONSTRAINT PK_Meat PRIMARY KEY (ID) , 
    FOREIGN KEY (Supplier_ID) REFERENCES Supplier(ID) 
) ; 

MySQL의 쿼리 끝 : # 1215 -

누구나 약간의 문제가이 두 테이블에서 볼 외래 키 제약 조건을 추가 할 수 있습니까?

+2

는'Dodavatel' –

+0

죄송합니다, 내 실수에 대한 테이블 정의를 제공합니다. 물론 'Dodavatel'대신 'Supplier'가 있어야합니다. 나는 체코 어에서 영어로 코드를 번역하고 나는 마지막 라인의 마지막 부분을 번역하는 것을 잊었다. 지금은 코드가 실제로 .. 그리고 물론 여전히 작동하지 않습니다 .. – Bertik

답변

1

Supplier_ID 열은 유형이고, IDSupplier 표는 INT UNSIGNED이다. 이 같은

변경을 :

CREATE TABLE Supplier 
(
    ID INT UNSIGNED NOT NULL AUTO_INCREMENT , 
    Company_name  VARCHAR (100) , 
    Company_address  VARCHAR (100) , 
    Bank_account  VARCHAR (100) , 
    CONSTRAINT PK_Supplier PRIMARY KEY (ID) 
) ; 

CREATE TABLE Meat 
(
    ID INT UNSIGNED NOT NULL AUTO_INCREMENT , 
    Initial_weight  VARCHAR (50) , 
    Actual_weight  VARCHAR (50) , 
    Date_of_delivery DATETIME , 
    Durability   DATETIME , 
    Supplier_ID   INT UNSIGNED NOT NULL , 
    CONSTRAINT PK_Meat PRIMARY KEY (ID) , 
    FOREIGN KEY (Supplier_ID) REFERENCES Supplier(ID) 
) ; 
+0

얼마나 간단합니다. 이제 작동합니다. 고맙습니다. – Bertik

관련 문제