2014-11-13 2 views
0

Привет, ребята У меня есть некоторые проблемы, которые я пытаюсь вставить данные в столбец с внешним ключом в MSQL. Но я не могу сделать он работает. Буду признателен, если кто-нибудь поможет мне в этом.Как я могу вставить в столбец, когда у меня есть внешний ключ в mysql

Category 
(
idCategory int(20) auto_increment not null, 
NameCategory varchar(40) not null, 
PRIMARY KEY (idCategory) 
); 

SubCategory 
( 
idSubCategory int(10)not null primary key auto_increment , 
NameSub varchar(40) not null, 
FK_Category int not null 
); 

ALTER TABLE SubCategory auto_increment=1; 

ALTER TABLE SubCategory 
ADD FOREIGN KEY (PK_Category) 
REFERENCES Category (idCategory); 

Я попробовал это 3 пути, но ничего не работает

INSERT INTO Subcategory (NameSub) 
VALUES ('Nisan'); 

INSERT INTO Subcategory (idSubCategory, NameSub,PK_Category) 
VALUES (01, 'Nisan', 01); 

INSERT INTO subcategory (NameSub, PK_Category) VALUES 
    ('Nisan' SELECT idCategory from Category WHERE idCategory = 1); 
+0

Был ли мой предложенный ответ решить вашу проблему? – Dijkgraaf

ответ

0

По какой-то причине ваш внешнего ключа ограничивает скрипт не работает для меня, так что я сделал это еще один альтернативный способ.
я работал, почему после этого, вы ссылаетесь у вас есть ADD FOREIGN KEY (PK_Category) вместо (FK_Category)

CREATE TABLE Category 
(
idCategory int(20) auto_increment not null, 
NameCategory varchar(40) not null, 
PRIMARY KEY (idCategory) 
); 

CREATE TABLE SubCategory 
( 
idSubCategory int(10)not null primary key auto_increment , 
NameSub varchar(40) not null, 
FK_Category int not null, 
INDEX IDX_Category(FK_Category), 
FOREIGN KEY (FK_Category) 
     REFERENCES Category(idCategory) 
     ON DELETE CASCADE 
); 


ALTER TABLE SubCategory auto_increment=1; 

А вот вставки

INSERT INTO Category (NameCategory) 
VALUES ('Car'); 

INSERT INTO Subcategory (NameSub,FK_Category) 
VALUES ('Nisan', 01); 

Как вы не указали содержимое таблицы I категории» вы создали один.

Примечание. Проблема, с которой вы можете столкнуться, состоит в том, что ваша родительская таблица пуста, а затем она будет ошибочной.

SQL Fiddle

Смежные вопросы