下面三张表,第二张表中的账户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;

解决方案 »

  1.   

    这是我用楼主的代码运行的结果mysql> source d:\hello.sql
    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)没问题啊!!