gpt4 book ai didi

mysql - 当mysql中有外键时,如何插入到列中

转载 作者:行者123 更新时间:2023-11-29 23:26:23 25 4
gpt4 key购买 nike

大家好,我遇到了一些问题,我一直在尝试将数据插入到 MSQL 中具有外键的列中,但我无法使其工作。如果有人帮助我解决这个问题,我将不胜感激。

 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 );

最佳答案

由于某种原因,您的外键约束脚本对我不起作用,所以我用另一种替代方法进行了操作。
我后来弄清楚了为什么,您提到您有 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);

由于您没有指定类别表的内容,所以我创建了一个。

注意:您可能遇到的问题是您的父表为空,然后会出错。

SQL Fiddle

关于mysql - 当mysql中有外键时,如何插入到列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26920701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com