- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此创建表抛出错误 150:
CREATE TABLE IF NOT EXISTS published(
isbn VARCHAR(13) NOT NULL,
publisherid INTEGER NOT NULL,
year INTEGER NOT NULL,
lastupdate TIMESTAMP NOT NULL,
lastupdateby INTEGER NOT NULL,
FOREIGN KEY (lastupdateby) REFERENCES librarians (librarianid),
FOREIGN KEY (isbn) REFERENCES books,
FOREIGN KEY (publisherid) REFERENCES publishers,
PRIMARY KEY (isbn, publisherid)
) ENGINE = INNODB;
我已经检查了它引用的表(librarians
、books
和 publishers
)在 SQL 达到这个位时已经创建.这是他们的 DDL:
CREATE TABLE IF NOT EXISTS librarians(
librarianid INTEGER AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
canread BOOLEAN NOT NULL,
canwrite BOOLEAN NOT NULL,
canexec BOOLEAN NOT NULL,
lastupdate TIMESTAMP NOT NULL,
lastupdateby INTEGER NOT NULL,
FOREIGN KEY (lastupdateby) REFERENCES librarians (librarianid)
) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS books(
isbn VARCHAR(13) PRIMARY KEY,
title VARCHAR(255) NOT NULL,
lastupdate TIMESTAMP NOT NULL,
lastupdateby INTEGER NOT NULL,
FOREIGN KEY (lastupdateby) REFERENCES librarians (librarianid)
) ENGINE = INNODB;
CREATE TABLE IF NOT EXISTS publishers(
publisherid INTEGER PRIMARY KEY AUTO_INCREMENT,
publishername VARCHAR(255) UNIQUE NOT NULL,
lastupdate TIMESTAMP NOT NULL,
lastupdateby INTEGER NOT NULL,
FOREIGN KEY (lastupdateby) REFERENCES librarians (librarianid)
) ENGINE = INNODB;
此外,我还检查了我发现的以下指南 here :
引用的表也应该是 InnoDB。好吧,我什至明确指定了这一点。
引用表必须有索引和主键。外键字段是它们各自引用表的(唯一)主键。除非我误解了这个要求,否则应该满足它。
FK 列和引用的PK 列的SQL 数据类型必须相同。 除非我没检查错,否则这个应该没问题。
lastupdateby INTEGER NOT NULL
--> librarianid INTEGER AUTO_INCREMENT PRIMARY KEY
isbn VARCHAR(13) NOT NULL
--> isbn VARCHAR(13) 主键
publisherid INTEGER NOT NULL
--> publisherid INTEGER PRIMARY KEY AUTO_INCREMENT
那么,我错过了什么?这个错误 150 的原因可能是什么?
最佳答案
您在表 books 和 publishers 的外键规范中缺少列引用。您需要如下更改这些行:
FOREIGN KEY (isbn) REFERENCES books (isbn),
FOREIGN KEY (publisherid) REFERENCES publishers(publisherid),
关于mysql - InnoDB CREATE TABLE 抛出错误 150,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11762862/
我已经在我的 windows7 机器上安装了 bugzilla4.2.5。当我运行 bugzilla 的 checksetup.pl 脚本时,它显示 Use of uninitialized valu
我正在使用 MySQL 5.1.56 我有一个包含大约 70 个表的数据库,我有一个特定损坏的表的问题,例如表_X 当我尝试访问表时mysql> 从 Table_x 中选择 *;ERROR 1105
我最近尝试将 MySQL 5.1 服务器升级到 5.7。当服务器无法启动时,我发现您必须先导出数据,然后再进行大量升级(二进制文件不再可用),所以我回滚到 5.1 进行导出。 问题是,回到 5.1,I
我正处于项目的开始阶段,到目前为止我一直在使用默认的 MySQL 数据库。 对了,默认的数据库有名字吗? 我的问题是如何在不删除当前表和创建新表的情况下将现有表更改为 utf-8 和 InnoDB。是
我最近尝试将 innodb 缓冲池大小增加到 8GB,但在我的 innodb 状态下,池大小看起来像之前配置的值(在我的例子中是 500MB)。 ---------------------- BUFF
我是一家网络酒店的幸运老板,店主会在不知情的情况下更改设置。当这么说时,我的数据库中有一些表正在使用 InnoDB 引擎运行。但是晚上主机禁用了 InnoDB,所以我无法使用 ALTER 命令将其转换
我刚刚将数据库从 MyISAM 引擎迁移到 InnoDB。我使用 mysqldump 备份我的 MyISAM 数据库,但是当我查看 MySQL docs ,对于 InnoDB 表,我还需要保存二进制文
环境: Windows 7(XAMPP 最新版) Apache 2.4.4PHP 5.5MySQL 5.6.11 我正在尝试从 MySQL 5.1 备份数据库并将其导入 MySQL 5.6。 在 My
我正在创建的应用程序主要使用选择,但也有一些是插入、更新等。我想知道在这些情况下哪种性能最好。 其次,当我在 innodb 中有两个相关的表时,如果它与另一个表中的行相关,我该如何删除它而不吐出错误?
我的意思是页面: https://dev.mysql.com/doc/internals/en/innodb-page-structure.html 这些 16KB 的 MySQL 页面会在内存或磁盘
以下是我使用 mysqldump 备份数据库的开关: /usr/bin/mysqldump -u **** --password=**** --single-transaction --databas
我阅读了本网站上的大部分 InnoDB 示例,但我对 InnoDB 的行为一无所知。 据我所知 START TRANSACTION; 声明这是一个事务连接。没关系到这里。现在我有 3 个表: 带有 I
我有一个包含混合表(MyISAM、InnoDB)的 MySQL 数据库。 如何通过 Linux 命令行使用 mysqldump 创建数据库的完整备份,我应该使用什么选项? 最佳答案 在下面使用- 所有
我有一张桌子:。我用Python在这个表中插入了大约400k行。以下是INSERT语句:。我在两个表tab1.col1和tab2.col2上都有一个索引。但是插入大约需要5分钟/1000行的时间。我从
我正在尝试使用 WAMP 在本地服务器上安装 Magento。 InnoDB 被设置为默认引擎,但它仍然向我显示消息: Database server does not support InnoDB
我最近将所有表从 MyISAM 移到了 InnoDB,因为我想摆脱大表上的表锁定。 在以下表上运行 UPDATE 或 INSERT 查询花费的时间比预期的要多很多。 (约 5 分钟) 我如何优化 in
我正在运行带有 XAMPP 的 Windows 10 和在本地主机上安装的几十个 Drupal 站点。几个月来一切都运行良好。 今天早上,我从两天前的还原点执行了 Windows 还原,以删除不需要的
Socialengine 4.8.6 - 启动时显示“白屏”,只能通过浏览器访问 sesystem.com/phpmyadmin 和 sesystem.com/install。 问题开始:我需要一个包
由于 InnoDB 在 B+ 树中组织其数据。树的高度影响 IO 次数,这可能是 DB 变慢的主要原因之一。 所以我的问题是如何断言或计算B+树的高度(例如根据可以通过行大小、页面大小和行号计算的页数
我尝试使用 mysqldump 从系统 A 使用 innodb 默认存储引擎将大约 40gb 的数据库 db1 转储到 sql 文件中,并尝试在另一个系统 B 上恢复它。两者都有默认存储引擎 inno
我是一名优秀的程序员,十分优秀!