首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我们如何引用两个表呢?mysql

我们如何引用两个表呢?mysql
EN

Stack Overflow用户
提问于 2011-10-06 09:25:36
回答 2查看 349关注 0票数 0

这是我的桌子

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `carslibrary` (
  `CarID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `CarName` varchar(255) NOT NULL,
  PRIMARY KEY (`CarID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;

CREATE TABLE IF NOT EXISTS `colorslibrary` (
  `ColorID` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `ColorName` varchar(255) NOT NULL,
  PRIMARY KEY (`ColorID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

我想创建另一个引用CarID和ColorID的表

我制作了一个名为facerecord的表

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `facerecord` (
  `carslibrary_ID` int(10) NOT NULL,
  `colorslibrary_ID` int(11) NOT NULL,
  KEY `carslibrary_ID` (`carslibrary_ID`),
  KEY `colorslibrary_ID` (`colorslibrary_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我得到了这个错误

代码语言:javascript
复制
Error creating foreign key on carslibrary_ID (check data types)

Error creating foreign key on colorslibrary_ID (check data types)

Error
ALTER TABLE  `facerecord` ADD FOREIGN KEY (  `carslibrary_ID` ) REFERENCES  `cars2`.`carslibrary` (
`CarID`
) ON DELETE SET NULL ON UPDATE SET NULL ;

ALTER TABLE  `facerecord` ADD FOREIGN KEY (  `colorslibrary_ID` ) REFERENCES  `cars2`.`colorslibrary` (
`ColorID`
) ON DELETE SET NULL ON UPDATE SET NULL ;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-06 09:38:22

数据类型不匹配,因为您的主表使用unsigned整数类型,而您的facerecord表使用纯签名INT(10), INT(11)作为数据类型。

facerecord更改为:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `facerecord` (
  `carslibrary_ID` int(10) unsigned NOT NULL,
  `colorslibrary_ID` int(11) unsigned NOT NULL,
  KEY `carslibrary_ID` (`carslibrary_ID`),
  KEY `colorslibrary_ID` (`colorslibrary_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
票数 2
EN

Stack Overflow用户

发布于 2011-10-06 09:39:29

CarIdColorId无符号整数,因此您应该使用:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `facerecord` (
  `carslibrary_ID` int(10) unsigned NOT NULL,
  `colorslibrary_ID` int(11) unsigned NOT NULL,
  KEY `carslibrary_ID` (`carslibrary_ID`),
  KEY `colorslibrary_ID` (`colorslibrary_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7669489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档