- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我用更具可读性的代码重现了我遇到的问题。我在 mysql 提示符下运行这个 sql 文件:
CREATE SCHEMA IF NOT EXISTS test_schema
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE test_schema ;
-- -----------------------------------------------------
-- Table test_schema.table_one
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS table_one (
table_one_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
table_one_name VARCHAR(45) NOT NULL,
PRIMARY KEY (table_one_id, table_one_name)
)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table test_schema.table_two
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS table_two (
table_two_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
table_two_name VARCHAR(45) NOT NULL,
table_one_name VARCHAR(45) NOT NULL,
PRIMARY KEY (table_two_id)
)
ENGINE = InnoDB;
ALTER TABLE table_two ADD FOREIGN KEY (table_one_name) REFERENCES table_one(table_one_name);
我从提示中得到的输出是:
mysql> source test-database.sql;
Query OK, 1 row affected (0.00 sec)
Database changed
Query OK, 0 rows affected (0.07 sec)
Query OK, 0 rows affected (0.08 sec)
ERROR 1005 (HY000): Can't create table 'test_schema.#sql-44c_2a' (errno: 150)
如果我运行“SHOW ENGINE INNODB STATUS;”我得到以下详细信息
------------------------
LATEST FOREIGN KEY ERROR
------------------------
150603 9:22:25 Error in foreign key constraint of table test_schema/#sql-44c_2a:
FOREIGN KEY (table_one_name) REFERENCES table_one(table_one_name):
Cannot find an index in the referenced table where the
referenced columns appear as the first columns, or column types
in the table and the referenced table do not match for constraint.
Note that the internal storage type of ENUM and SET changed in
tables created with >= InnoDB-4.1.12, and such columns in old tables
cannot be referenced by such columns in new tables.
See http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html
for correct foreign key definition.
我搜索过这个问题,几乎每个人都说它是关于:
1) 没有相同的类型
- 它们都是“VARCHAR(45) NOT NULL”(尝试让 table_two 中的那个为空,没有改变错误消息)
2)外键不是主键
- table_one_name 是 table_one 中的主键,与 table_one_id 一起
3) 确保表级别的字符集和整理选项相同
- 这是什么意思?我想它们是因为我不改变它们?
请帮忙//芬贝尔
最佳答案
为了添加外键,必须对两个字段进行索引。
试试这个:
-- -----------------------------------------------------
-- Table test_schema.table_one
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS table_one (
table_one_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
table_one_name VARCHAR(45) NOT NULL,
PRIMARY KEY (table_one_id, table_one_name),
KEY `one_name` (`table_one_name`)
)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table test_schema.table_two
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS table_two (
table_two_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
table_two_name VARCHAR(45) NOT NULL,
table_one_name VARCHAR(45) NOT NULL,
PRIMARY KEY (table_two_id),
KEY `two_name` (`table_two_name`)
)
ENGINE = InnoDB;
ALTER TABLE table_two ADD FOREIGN KEY (table_one_name) REFERENCES table_one(table_one_name);
关于mysql - 错误1005(HY000): Can't create table 'test_schema.#sql-44c_2a' (errno: 150),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30613623/
我了解如何使用hy.read_str和hy.eval从 python 评估 hy来自 python 内部的表达式。但是,当我使用这种方法时,导入和全局变量不会在 hy 之间共享。和python环境。考
我知道如何将 hy 模块导入到 python 中。我所要做的就是创建一个包含 hy 代码的 something.hy 文件,然后执行以下操作... import hy import something
如何将对象 HyExpression 打印为 HyExpression([ HyExpression([ HySymbol('/'), HyInteger(2)]),
我正在编写宏以简化使用 matplotlib 绘制绘图的过程。我的第一次尝试,如下所示,工作正常: (defmacro insert-ax [body] `((getattr g!ax (str '~
Hy 中指定元类的语法是什么。我尝试了以下方法: (defclass Metaclass [] ) (defclass Foo [ :meta Metaclass ] ) (defclass Foo
我查看了所有 Hy 的文档,但找不到在任何地方创建对象的方法。更具体地说,我正在尝试关注 this PySide tutorial ,但将每个命令转换为 Hy,我不确定如何在 Hy 中执行 app =
我想得到 Hy! 在 Hylang 中,我如何执行简单的 Python 循环: for i in range(5): print(i) 最佳答案 tutorial提供了这个例子: (for [
有什么方法可以用 Hy 中的索引替换列表或字典元素的值吗?nth 函数似乎不对应 Python 的方括号。 我期待的是下面的翻译。 (setv lst [1 2 3]) (setv (nth lst
我想在 hy 中执行以下操作: from StringIO import StringIO import pandas as pd s = """sepal_length sepal_width
在 python 中,以下代码迭代 numpy 数组(for 循环),并且 numpy 数组的值发生更改: import numpy a08_1 = numpy.arange(8).astype(nu
我想使用 Hy ,一种基于 Python 的 Lisp 方言。然而,我的同事都使用 Python,并且不太可能很快切换到 Lisp 方言。 如何将 Hy 代码打包到标准 Python 模块中? 最佳答
我在玩符号,惊讶地看到: hy 0.18.0 using CPython(default) 3.7.3 on Linux => (bool '0) False => (bool 'False) Tru
我已经从 https://github.com/hylang/hy-mode 成功安装了 hy-mode .我现在可以在 emacs 中打开 .hy 文件并进行语法高亮显示,并且使用 paredit
当我使用 -hy 标志来分析我的程序的堆使用情况时 ./prog +RTS -hy 经常看到构造函数*在结果中,以及其他构造函数,例如 []和 Word8 . 什么类型*在这种情况下?是否与kinds
我不明白为什么会出现这个错误 if (isset($_POST['submit'])) { require "../config.php"; require "../common.ph
我是一名优秀的程序员,十分优秀!