下面三张表,第二张表中的账户ID对应第一张表的账户ID,第三张表的用户ID对应第二张表的用户ID,请问,怎么在数据库中建立联级?第一张表和第二张表能联起来,但第三张表和第二张表就不能了,提示错误.我把代码放在最下面,请有经验的高手指点一下,谢谢账户数据:account列名 字头名 类型 空 键 备注
账户ID account_id INTEGER(10) 否 主 与登陆数据和订单有关
姓 firstname VARCHAR(20) 否 - -
名 lastname VARCHAR(30) 否 - -
登陆数据:signon列名 字头名 类型 空 键 备注
用户ID user_id CHAR(32) 否 主 与个性化登陆信息有关
用户名 user_name VARCHAR(20) 否 - -
用户密码 user_password VARCHAR(20) 否 - -
账户ID account_id INTEGER(10) 否 外 与账户数据有关个性化登陆信息:profile列名 字头名 类型 空 键 备注
个性化ID profile_id CHAR(32) 否 主
用户ID user_id CHAR(32) 否 外 与登陆数据有关DROP TABLE IF EXISTS `petstore`.`account`;
CREATE TABLE `petstore`.`account` (
`account_id` int(10) unsigned zerofill NOT NULL auto_increment COMMENT '账户ID',
`firstname` varchar(20) NOT NULL COMMENT '姓',
`lastname` varchar(30) NOT NULL COMMENT '名',
PRIMARY KEY (`account_id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;DROP TABLE IF EXISTS `petstore`.`signon`;
CREATE TABLE `petstore`.`signon` (
`user_id` char(32) NOT NULL COMMENT '用户ID',
`user_name` varchar(20) NOT NULL COMMENT '用户名',
`user_password` varchar(20) NOT NULL COMMENT '用户密码',
`account_id` int(10) unsigned zerofill NOT NULL COMMENT '账户ID',
PRIMARY KEY (`user_id`),
KEY `FK_signon_1` (`account_id`),
CONSTRAINT `FK_signon_1` FOREIGN KEY (`account_id`) REFERENCES `account` (`account_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;DROP TABLE IF EXISTS `petstore`.`profile`;
CREATE TABLE `petstore`.`profile` (
`profile_id` char(32) NOT NULL COMMENT '个性化ID',
`user_id` char(32) NOT NULL COMMENT '用户ID',
PRIMARY KEY (`profile_id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
账户ID account_id INTEGER(10) 否 主 与登陆数据和订单有关
姓 firstname VARCHAR(20) 否 - -
名 lastname VARCHAR(30) 否 - -
登陆数据:signon列名 字头名 类型 空 键 备注
用户ID user_id CHAR(32) 否 主 与个性化登陆信息有关
用户名 user_name VARCHAR(20) 否 - -
用户密码 user_password VARCHAR(20) 否 - -
账户ID account_id INTEGER(10) 否 外 与账户数据有关个性化登陆信息:profile列名 字头名 类型 空 键 备注
个性化ID profile_id CHAR(32) 否 主
用户ID user_id CHAR(32) 否 外 与登陆数据有关DROP TABLE IF EXISTS `petstore`.`account`;
CREATE TABLE `petstore`.`account` (
`account_id` int(10) unsigned zerofill NOT NULL auto_increment COMMENT '账户ID',
`firstname` varchar(20) NOT NULL COMMENT '姓',
`lastname` varchar(30) NOT NULL COMMENT '名',
PRIMARY KEY (`account_id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;DROP TABLE IF EXISTS `petstore`.`signon`;
CREATE TABLE `petstore`.`signon` (
`user_id` char(32) NOT NULL COMMENT '用户ID',
`user_name` varchar(20) NOT NULL COMMENT '用户名',
`user_password` varchar(20) NOT NULL COMMENT '用户密码',
`account_id` int(10) unsigned zerofill NOT NULL COMMENT '账户ID',
PRIMARY KEY (`user_id`),
KEY `FK_signon_1` (`account_id`),
CONSTRAINT `FK_signon_1` FOREIGN KEY (`account_id`) REFERENCES `account` (`account_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;DROP TABLE IF EXISTS `petstore`.`profile`;
CREATE TABLE `petstore`.`profile` (
`profile_id` char(32) NOT NULL COMMENT '个性化ID',
`user_id` char(32) NOT NULL COMMENT '用户ID',
PRIMARY KEY (`profile_id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
解决方案 »
- 如何对多语言版的mysql字符串字段进行首字母排序
- 软件运行一段时间后,增加了一些功能,因此当前的数据库与旧数据库相比增加了一些表和字段,旧数据库中的表和字段在当前数据库中都有,请问怎样将客户旧数据库中已经录入的
- mysql如何在存储过程中递归?
- mysql访问被拒绝,为何,在线等。。。
- 两个ACCESS数据库如何将一个的数据合并到另一个!
- 散分,升到5个三角了
- sos sos!!! about foxpro 6
- 求救啊 关于mysql的问题,in和not exists返回的结果不一样啊
- MYSQL CLUSTER VS MYCAT,哪个更好?
- mysql自定义函数问题
- 一个mysql数据库的问题
- 请教一个联级操作
Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected (0.34 sec)Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected (0.13 sec)Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected (0.09 sec)mysql> show tables;
+--------------------+
| Tables_in_petstore |
+--------------------+
| account |
| profile |
| signon |
+--------------------+
3 rows in set (0.08 sec)没问题啊!!