msql双主键,创建双外键遇到问题解决
来源:互联网 发布:网络销售茶叶好做吗 编辑:程序博客网 时间:2024/06/10 21:18
今天用mysql创建表遇到一个问题:ERROR1005:can't create table xxxx.pcorelation error:150
我的表如下:
create table commodityinfo
(
tracecode varchar(50) not null check(tracecode!=''),
securitycode varchar(50) not null,
companyid varchar(50) not null,
sortcode varchar(50) not null,
primary key(tracecode,companyid)
)engine=innodb default charset=utf8;
create table pakageinfo
(
pid int(32) not null,
xxxxx
primary key(pid)
)engine=innodb default charset=utf8;
create table tracecodepackagerelation
(
tracecode varchar(50) not null check(tracecode!=''),
pid int(32) not null,
xxxxx
.......
primary key(tracecode,pid),
foreign key(tracecode) references commodityinfo(tracecode) on delete cascade on update cascade,
foreign key(pid) references pakageinfo(pid) on delete cascade on update cascade
)engine=innodb default charset=utf8;
create table sortinfo
(
oid int(32) not null,
xxxxx.....
primary key(oid)
)engine=innodb default charset=utf8;
create table pcorelation
(
pid int(32) not null,
oid int(32) not null,
companyid varchar(50) not null,
primary key(companyid,pid),
foreign key(companyid) references commodityinfo(companyid) on delete cascade on update cascade,
foreign key(pid) references pakageinfo(pid) on delete cascade on update cascade,
foreign key(oid) references pakageinfo(oid) on delete cascade on update cascade
)engine=innodb default charset=utf8;
一直在网上也差不多解决方案,自己调试的时候发现 foreign key(tracecode) references commodityinfo(tracecode) on delete cascade on update cascade是可以的,
而foreign key(companyid) references commodityinfo(companyid) on delete cascade on update cascade却不行,于是我改变一下
primary key(tracecode,companyid)中顺序->primary key(companyid,tracecode),这样原来可以的 foreign key(tracecode)却报错了,二原来不行的foreign key(companyid) 却可以了,于是我猜测primary key(tracecode,companyid)的时候是以第一个字段作为主要索引的,这样我在第一个表中多创建一个处于第二个字段companyid的索引,index(companyid),再试一次,这个时候其实我已经快崩溃了。于是突然!okey啦!创建完成!无比happy!
- msql双主键,创建双外键遇到问题解决
- SQL2005创建表时主键问题解决方法
- msql数据库创建用户,授权
- pthread创建线程及遇到问题解决
- msql
- 今天又遇到了问题解决不了,创建层!!!
- 利用DOM创建input时,遇到的问题解决方法
- window在本地创建SVN步骤和遇到的问题解决
- 基于hibernate MSQL 注解根据数据库自动创建bean
- 快速创建主键
- 主键的创建
- Mysql 创建联合主键
- DataTable 创建主键PrimaryKey
- 创建主键约束
- Sqlite 主键自动创建
- 视图创建主键
- 创建联合主键
- 创建主键(举例)
- 炙手可热的12款网站模板推荐
- titanium 中滑杆实现
- PM5544 测试图卡
- exit(0)/exit(1)/return区别
- VS2010 配置DirectShow详细步骤(WIN7)
- msql双主键,创建双外键遇到问题解决
- Laravel中使用Profiler随时掌握调试信息
- vmare9.0上的ubuntu64位安装vmare tools出错
- Oracle rman 全备脚本
- web.xml中load-on-startup标签的含义
- MyBatis 入门到精通(二) SQL语句映射XML文件
- [BZOJ1211][HNOI2004][prufer序列][排列]树的计数
- 做seo的人必须知道的十个关键词
- 计算机网络可靠性的影响因素