MySQl下,建的外键引用不起作用,为啥 补充,tbl_basic的ID字段是主键字段 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MySQL没有外键,只不过为了兼容便准SQL的语法才能够识别你那些外键的定义 加上 TYPE = InnoDB 创表选项目前只有 InnoDB 表支持外键约束create table 'tbl_basic'(`ID` INT (3) UNSIGNED DEFAULT '0' NOT NULL,`GoodsName` VARCHAR (50)) TYPE = InnoDB CREATE TABLE `tbl_goods` (`ID` INT (3) UNSIGNED DEFAULT '0' NOT NULL,`RID` INT (3) UNSIGNED DEFAULT '0', `GoodsName` VARCHAR (50) DEFAULT '0', PRIMARY KEY(`ID`),foreign key(`RID`) REFERENCES `tbl_basic`(`ID`) ) TYPE = InnoDB 我一直以为innodb只是用来支持回滚,没想到还有外键的支持mysql> create table test_for( -> student_id int, -> class_id int, -> primary key(student_id,class_id), -> foreign key(student_id) REFERENCES student(ID), -> foreign key(class_id) REFERENCES class(ID))type=innodb;ERROR 1005: Can't create table '.\test\test_for.frm' (errno: 150)ERROR 1005:??????? 各相关表的字段索引必须先建立起来.MySQL 不会自动地为你添加你可以先建出所有的表与索引,然后,在最后一步进行 ALTER TABLE 加上外键约束 ,这样就不会错了. 存储过程 SQL Security指定DEFINER但是其它的用户还是可以调用这个存储过程? oracle存储过程中的return,在mysql中用什么方法可以实现 关于主从服务器配置 购物车问题 检索匹配的问题 MySQL中不能输入汉字问题? case when then col/100为啥整型列,查询结果后面多了.0000 Mysql AVG函数 与手动sum 再除 count求出的平均值不一致问题 数据库和excel导入问题 mysql 获取最近半年内每个月最后一条上传的记录 MySQL Control Center的怪问题 请教 mysql 在 linux 下的安装配置问题!
目前只有 InnoDB 表支持外键约束create table 'tbl_basic'(
`ID` INT (3) UNSIGNED DEFAULT '0' NOT NULL,
`GoodsName` VARCHAR (50)
) TYPE = InnoDB
CREATE TABLE `tbl_goods` (
`ID` INT (3) UNSIGNED DEFAULT '0' NOT NULL,
`RID` INT (3) UNSIGNED DEFAULT '0',
`GoodsName` VARCHAR (50) DEFAULT '0',
PRIMARY KEY(`ID`),
foreign key(`RID`) REFERENCES `tbl_basic`(`ID`)
) TYPE = InnoDB
mysql> create table test_for(
-> student_id int,
-> class_id int,
-> primary key(student_id,class_id),
-> foreign key(student_id) REFERENCES student(ID),
-> foreign key(class_id) REFERENCES class(ID))type=innodb;
ERROR 1005: Can't create table '.\test\test_for.frm' (errno: 150)
ERROR 1005:???????
MySQL 不会自动地为你添加你可以先建出所有的表与索引,然后,在最后一步进行 ALTER TABLE 加上外键约束 ,
这样就不会错了.