一课程表,里面只有一个字段“课程名”
还有一课程老师关系表,有“教工号”,“课程名”两个字段
想设课程老师关系表中的“课程名”为外键但是弹出错误信息:
1452-Cannot add or update a child row:a foreign key constraint fails('db_teacher/#sql-b1c_15',CONSTRAINT 'fk_co' FOREIGN KEY('coursename')REFERENCES 'tb_courses' (coursename) ON DELETE CASCADE ON UPDATE CASCADE)请教是什么出问题了,小弟感激不尽
还有一课程老师关系表,有“教工号”,“课程名”两个字段
想设课程老师关系表中的“课程名”为外键但是弹出错误信息:
1452-Cannot add or update a child row:a foreign key constraint fails('db_teacher/#sql-b1c_15',CONSTRAINT 'fk_co' FOREIGN KEY('coursename')REFERENCES 'tb_courses' (coursename) ON DELETE CASCADE ON UPDATE CASCADE)请教是什么出问题了,小弟感激不尽
解决方案 »
- 安装Mysql时,没有出现密码的设置框。成功安装后。。。
- dbbind获取时间时分秒一直为00:00:00,求解决!
- SELECT * INTO OUTFILE 导出文件不能删除
- linux 紅帽子3 配 myodbc 錯誤
- mysql数据库文件通用么
- 超级菜鸟问题。。 帮忙啊
- Linux下如何开启Mysql的更新日志?
- mysql cluster的等待事件Waiting for ndbcluster global schema lock
- 在windows2008中安装的应用程序,使用了mysqlpp.dll 文件不能正常启动?
- 急!!!关于微信公众平台——纯PHP+MySQL打造的客服系统问题
- 求个转储过程啊.......
- sql语句
show create table 课程表;
show create table 课程老师关系表;还有你的修改用的语句。
create table tb_courses
(
coursename varchar(50) not null,
primary key (coursename)
);
这个是老师与课程的关系表
create table tb_te_cour
(
tnumber int(50),
coursename varchar(50),
teachername varchar(50)
);
这两个是创建表的,建立索引和外键的我是直接在MYSQL里面操作的不是用代码写的
请问要将这两个表建立外键怎么做?谢谢
alter table tb_te_cour add constraint FOREIGN KEY(coursename) REFERENCES tb_courses (coursename) ON DELETE CASCADE ON UPDATE CASCADE
2.检查字段名是不是有错误。
3.检查字段类型,最好一样。
4.比较隐蔽,检查字符集,为了迁移和使用的方便,尽量使用UTF8
5.上面的都检查了?那么我估计你的在创建久表的时候用的字符集与新表不同,如果我的新表用的字符集是UTF8,那么即使你把数据库的这些字符集全部设置 成UTF8你的久表字段字符集依然不会改变(要是你有特殊限定的话),那就需要你对久表的所有字段进行字符集的更
--------------------
像你这个错误,应该是表tb_te_cour ('coursename')的记录在表'tb_courses' (coursename)里没有对应记录造成的,检查下:select a.* from tb_te_cour a left join tb_courses b on a.coursename=b.coursename where b.coursename is null;
create table tb_te_cour(
tnumber int(50),
coursename varchar(50),
teachername varchar(50),
FOREIGN KEY(coursename) REFERENCES tb_courses (coursename) ON DELETE CASCADE ON UPDATE CASCADE
)engine=innodb;