2014-12-05 2 views
1

MySQL для меня новая вещь. Я обычно работаю с базой данных Oracle. Мне нужно преобразовать небольшую базу данных из Oracle 10g в синтаксис MySQL для работы с phpMyAdmin.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

К сожалению, моя ошибка. Конечно, должен быть «Поставщик» вместо «Додавател». Я переводил код с чешского на английский, и я забыл перевести последнюю часть последней строки. Теперь это код на самом деле .. И, конечно, все еще не работает. – Bertik

ответ

1

Supplier_ID колонка имеет DECIMAL типа, в то время как в 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