【问题标题】:what is wrong with this sql table creating (foreign key issue)这个 sql 表创建有什么问题(外键问题)
【发布时间】:2011-10-09 11:51:32
【问题描述】:

错误号:1005

无法创建表 'pyro_urbfot.default_wishlist' (errno: 150)

CREATE TABLE IF NOT EXISTS `default_wishlist` (
  `id` int(8) unsigned NOT NULL auto_increment,
  `uid` int(11) NOT NULL,
  `position` int(8) unsigned NOT NULL default '0',
  `url` varchar(30),
  `text` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  `dt_added` timestamp NOT NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`),
  KEY `position` (`position`),
  KEY `uid` (`uid`),
  FOREIGN KEY (`uid`)
  REFERENCES `default_users`(`id`)
  ON DELETE CASCADE
  ON UPDATE CASCADE
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

【问题讨论】:

  • default_users 的定义是什么样的?那张桌子肯定存在吗?
  • @MartinSmith - 感谢您的关注 - 它肯定存在,我不会指望这是问题所在,因为 default_users 是 CMS 的核心,我正在尝试将我的愿望清单模块集成到.我确实将 uid 更改为 smallint(5),就像 default_users 中的 (id) 一样,但这并没有改变任何东西
  • 那么在这种情况下检查该表中id 的数据类型。
  • @MartinSmith - 你是对的,存在差异,但不幸的是,我将 uid 更改为 smallint(5),就像 default_users 中的 (id) 一样,但这并没有改变任何内容跨度>
  • 有符号和无符号的呢?

标签: mysql sql foreign-keys innodb


【解决方案1】:

当我首先创建此表时,您的脚本对我来说很好

CREATE TABLE `default_users`
(
`id` int primary key
)

请检查该表是否存在并且您使用的是兼容的数据类型。

【讨论】:

    猜你喜欢
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    相关资源
    最近更新 更多