MySQL 错误代码 : 1824. 无法打开引用的表

标签 mysql sql

当我尝试创建“项目表”时,出现此错误代码:1824。无法打开引用的表“员工”。

我的语法:

CREATE DATABASE IF NOT EXISTS Test;
USE Test;

CREATE TABLE IF NOT EXISTS Customer (
CustomerID VARCHAR(7) NOT NULL,
CustomerName VARCHAR(50),
CustAdress VARCHAR(70),
CustEmail VARCHAR(50),
PRIMARY KEY (CustomerID)
);

CREATE TABLE IF NOT EXISTS Employee (
EmpID VARCHAR(7) NOT NULL,
EmpName VARCHAR(50),
Position VARCHAR(30),
EmpTimePrice INT(4),
PRIMARY KEY (EmpID)
);

CREATE TABLE IF NOT EXISTS Project (
ProjectNo VARCHAR(7),
ProjectName VARCHAR(50),
StartDate DATE,
ProjTimePrice INT(6),
CustomerID VARCHAR(7),
EmpID VARCHAR(7),
PRIMARY KEY (ProjectNo),
FOREIGN KEY (EmpID) REFERENCES Employee (EmpID),
FOREIGN KEY (CustomerID) REFERENCES Customer (CustomerID) 
);

CREATE TABLE IF NOT EXISTS ProjectWork (
ProjectNo VARCHAR(7),
EmpID VARCHAR(7),
PWDATE DATE,
HoursWorked INT(5),
FOREIGN KEY (ProjectNo) REFERENCES Project (ProjectNo),
FOREIGN KEY (EmpID) REFERENCES Employee (EmpID)
);

这些名称对我来说看起来是正确的,并且我已经引用了外键,所以我不明白为什么会出现此错误。任何帮助将不胜感激,谢谢。

最佳答案

当两个表具有不同的表引擎时,通常会发生这种情况。所以检查两个表是否有相同的表引擎。例如 MYISAM 不支持外键

关于MySQL 错误代码 : 1824. 无法打开引用的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53652278/

相关文章:

sql - 从 VARCHAR 转换为 DATE

php - 在mysql表中创建一个带有日期连接的ID字段

php - where 子句中的 Codeigniter 列 'idimport_database' 不明确

mysql - 如何在2个类别的sql中显示最大值

mysql - SQL,如何从 mysql 中选择一个包含 "/"的列

SQL - 排序后,仅返回列中具有某些连续值的行

c# - 如何在事务上设置挂起的回滚?

mysql - 将oracle for循环转换为mysql循环

mysql - 插入到由 MySQL 后端中的两个表构建的具有一对一关系的 MS Access 查询中?

sql - 如何在一行中获取行值?