【发布时间】:2017-05-28 06:01:05
【问题描述】:
我是初学者,我要做的就是插入一个作为外键的表字段,请看一下这两个表:
表格类别
CREATE TABLE IF NOT EXISTS `categorie` (
`id_cat` int(2) NOT NULL AUTO_INCREMENT,
`nom_cat` varchar(20) NOT NULL,
PRIMARY KEY (`id_cat`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
和表Annonce
CREATE TABLE IF NOT EXISTS `annonce` (
`id_annonce` int(6) NOT NULL AUTO_INCREMENT,
`titre` varchar(30) NOT NULL,
`description` varchar(255) NOT NULL,
`tarif` float NOT NULL,
`deplacement` int(2) NOT NULL,
`date_creation` date NOT NULL,
`date_expiration` date NOT NULL,
`image` varchar(255) NOT NULL,
`id_cat` int(2) DEFAULT NULL,
PRIMARY KEY (`id_annonce`),
KEY `id_cat` (`id_cat`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
在手动链接外键 id_cat 之后(ON UPDATE SET NULL ON DELETE CASCADE),这就是数据库的样子
在将数据插入到类别表中后,它看起来像这样
但不幸的是,我无法执行此查询:
INSERT INTO annonce (id_annonce, titre, description, tarif, deplacement,
date_creation, date_expiration,id_cat)
VALUES('','anything','anything',2,3,'2017-04-01','2017-04-01',2)
错误说:
1452 - 无法添加或更新子行:外键约束失败 (
lametcom.annonce, 约束annonce_ibfk_2外键 (id_cat) 参考annonce(id_cat) ON DELETE SET NULL ON UPDATE CASCADE)
谁能帮帮我,很抱歉我的英语不好,希望你能明白我的意思
【问题讨论】:
-
将空字符串插入非空列。省略该列并让自动增量担心它:
INSERT INTO annonce (titre, description, tarif, deplacement, date_creation, date_expiration,id_cat) VALUES('anything','anything',2,3,'2017-04-01','2017-04-01',2) -
感谢提示,我不知道它是否有效;)
标签: mysql database phpmyadmin innodb easyphp