- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须为类(class)项目创建和使用数据库。我使用 mysql workbench 在本地开发了数据库和应用程序。它需要托管在另一个名为 myphpmyadmin 的服务上。问题是当我使用该服务中的 mysql 执行行创建表时,出现以下错误。
Error
SQL query:
CREATE TABLE IF NOT EXISTS `artists_residence` (
`artists_id` INT( 11 ) ,
`city_id` INT( 11 ) ,
PRIMARY KEY ( `artists_id` , `city_id` ) ,
CONSTRAINT FOREIGN KEY ( `artists_id` ) REFERENCES `artists` ( `id` ) ON DELETE CASCADE ON UPDATE CASCADE ,
CONSTRAINT FOREIGN KEY ( `city_id` ) REFERENCES `city` ( `id` ) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = INNODB CHARSET = Latin1;
MySQL said: Documentation
#1005 - Can't create table 'fondellb-db.artists_residence' (errno: 150)
这是我试图执行的 mySql 的整个文件。
CREATE TABLE IF NOT EXISTS `artists` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`fname` VARCHAR(255) NOT NULL,
`lname` VARCHAR(255) NOT NULL,
`year_of_birth` DATE NOT NULL,
`year_of_death` DATE NULL DEFAULT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB CHARSET = Latin1;
CREATE TABLE IF NOT EXISTS `country` (
`country_id` INT(11) NOT NULL,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`country_id`))
ENGINE = InnoDB CHARSET = Latin1;
CREATE TABLE IF NOT EXISTS `city` (
`id` INT(11) NOT NULL,
`name` VARCHAR(255) NOT NULL,
`fk_country_id` INT(11),
PRIMARY KEY (`id`, `fk_country_id`),
CONSTRAINT `country_id`
FOREIGN KEY (`fk_country_id`)
REFERENCES `country` (`country_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT)
ENGINE = InnoDB CHARSET = Latin1;
CREATE TABLE IF NOT EXISTS `Medium` (
`id` INT(11) NOT NULL,
`name` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB CHARSET = Latin1;
CREATE TABLE IF NOT EXISTS `artists_medium` (
`artists_id` INT(11),
`medium_id` INT(11),
PRIMARY KEY (`artists_id`, `medium_id`),
CONSTRAINT
FOREIGN KEY (`artists_id`)
REFERENCES `artists` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT
FOREIGN KEY (`medium_id`)
REFERENCES `Medium` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB CHARSET = Latin1;
CREATE TABLE IF NOT EXISTS `artists_residence` (
`artists_id` INT(11),
`city_id` INT(11),
PRIMARY KEY (`artists_id`, `city_id`),
CONSTRAINT
FOREIGN KEY (`artists_id`)
REFERENCES `artists` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT
FOREIGN KEY (`city_id`)
REFERENCES `city` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB CHARSET = Latin1;
我无法弄清楚最终查询中失败的原因。所有其他查询均成功并且表已创建。我已经用各种变体摆弄了该查询,但似乎没有什么可以解决该错误。我删除了显式索引,更改了约束的顺序,检查了所有类型比较。这是 mysql 根据我设计的模型导出的文件,所以我不确定为什么现在收到此错误。请不要向我推荐对错误代码的引用或也收到此错误代码的另一篇文章,我知道什么会导致该错误,但我想知道是什么导致了这里的错误。
最佳答案
在本例中 - 您将创建以下外键
CONSTRAINT FOREIGN KEY ( `city_id` ) REFERENCES `city` ( `id` ) ON DELETE CASCADE ON UPDATE CASCADE
而city
表没有id
主键,而是复合主键。
显然,2 列中唯一的一列不能保证值的唯一性,因此 mysql 限制您创建这样的 FK。
因此您必须更改city
的PK或artists_residence
的FK。
关于MySql查询错误150之谜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45666860/
我一直在使用高精度时间在控制台中记录我的程序事件。但很快我就注意到程序有时会显示四舍五入到毫秒的时间,有时则不会!它完全偶尔发生,它是相同的代码,未重新编译,未在运行之间编辑: using Syste
首先:该代码被认为是纯粹的乐趣,请在生产中不要做任何类似的事情。在任何环境下编译并执行这段代码后,对于您,您的公司或您的驯鹿造成的任何伤害,我们概不负责。以下代码不安全,不可移植,并且非常危险。被警告
我正在投影图像,然后检查它: 高度是20px。这是正确的。 然后我检查包含 img 的 data-radium 元素,令我惊讶的是: 尽管没有内容,该元素的高度“增长”了两个像素。此外,data-ra
我是一名优秀的程序员,十分优秀!