用的mysql 4.1三张表:两个实体:user,role,一个联系:user_rolesql语句分别是:create table user
( id int not null AUTO_INCREMENT,
username varchar(50) not null,
password varchar(50) not null,
primary key(id,username))type=innodb
create table role
( id int not null AUTO_INCREMENT,
rolename varchar(50) not null,
roleinfo varchar(50) not null,
primary key(id,rolename))type=innodb
======================================================
上面两个表没有问题.下面这个表就建不起来,总是说1005错误.CREATE TABLE `user_role` (
`id` int(11) NOT NULL auto_increment,
username varchar(50) not null,
rolename varchar(50) not null,
PRIMARY KEY (id,username,rolename),
foreign key(username) REFERENCES user on delete RESTRICT,
foreign key(rolename) REFERENCES role on delete RESTRICT)type=innodb;请问大家我这外键约束有错误么,望大家不吝赐教.
( id int not null AUTO_INCREMENT,
username varchar(50) not null,
password varchar(50) not null,
primary key(id,username))type=innodb
create table role
( id int not null AUTO_INCREMENT,
rolename varchar(50) not null,
roleinfo varchar(50) not null,
primary key(id,rolename))type=innodb
======================================================
上面两个表没有问题.下面这个表就建不起来,总是说1005错误.CREATE TABLE `user_role` (
`id` int(11) NOT NULL auto_increment,
username varchar(50) not null,
rolename varchar(50) not null,
PRIMARY KEY (id,username,rolename),
foreign key(username) REFERENCES user on delete RESTRICT,
foreign key(rolename) REFERENCES role on delete RESTRICT)type=innodb;请问大家我这外键约束有错误么,望大家不吝赐教.
解决方案 »
- mysql字符问题
- mysql数据库脚本事务如何控制?
- 在MySQL中奇怪的中文问题
- mysql 新手提个问题,为何我创建的表中的增加数据与索引,但却找不到相对应的.MYD ,.MYI 文件
- 关于"mysql密码"的解密
- 为什么我无法开启mysql服务,在命令行状态下输入net start mysql后提示无法启动,系统发生1067错误,进程意外终止?
- root的密码设置问题!
- MySQL中文errmsg,有些未汉化,敬请斧正!
- mysql中group by之后想取到一组中的第二条记录怎么办?
- 建表总是提示1064,不知哪里出了问题
- [求助]请教导出一条记录
- 〓〓【用group by 语句后,触发器写了出现的问题不解,100分请求帮助】〓〓
primary key(id,username)
......
primary key(id,rolename)
...
username,rolename两个分别是user,role表的主键,有错么
-----------------------------------------------
username,rolename两个分别是user,role表的主键列表成员..
如果ID是自增长型的,不需要做主键吧,unique就行了.另:REFERENCES user 后面都没指定列名.