2015-09-18 4 views
-2
CREATE TABLE `mydb`.`Height` (
    `Height ID` VARCHAR(45) NOT NULL , 
    `Value` DOUBLE NULL , 
    `Unit` VARCHAR(10) not NULL , 
    `Value in Cms` DOUBLE NULL , 
    PRIMARY KEY (`Height ID`)) 
; 

CREATE TABLE `mydb`.`HeightUnit` (
    `Unit` VARCHAR(10) NOT NULL , 
    `Size in Cms` DOUBLE NULL , 
    PRIMARY KEY (`Unit`), 

    FOREIGN KEY (`Unit`) 
     REFERENCES `Height` (`Unit`) 
     ON DELETE NO ACTION 
     ON UPDATE NO ACTION) 
; 

я получаю +1005 могу создать таблицу ERRNO 150 ...Почему этот код не работает?

+0

A FK требует ссылки на ПК. –

ответ

0

ссылаются, столбец должен иметь индекс.

CREATE TABLE `mydb`.`Height` (
    `Height ID` VARCHAR(45) NOT NULL , 
    `Value` DOUBLE NULL , 
    `Unit` VARCHAR(10) not NULL , 
    `Value in Cms` DOUBLE NULL , 
    PRIMARY KEY (`Height ID`), 
    INDEX (`Unit`)) 
; 

Обычно внешний ключ должен ссылаться на первичный ключ другой таблицы. Вы действительно хотите ссылаться на столбец Height, а не Height ID?

+0

Вторая таблица (Единица высоты) содержит Единицу высоты, такую ​​как Cm, Inches и т. Д. ..... Какую первую таблицу следует искать – Chetan

+0

Ответил на мой вопрос .... Извините за неприятность .... – Chetan