mysql - 内联描述时外键约束无效

标签 mysql sql mysql-workbench

我有一个简单的架构:

CREATE TABLE technologies (
  technologyName VARCHAR(50) NOT NULL PRIMARY KEY
);

CREATE TABLE technologySynonyms (
  synonymId              INT PRIMARY KEY AUTO_INCREMENT,
  sourceTechnologyName VARCHAR(50) UNIQUE,
  targetTechnologyName VARCHAR(50),
  FOREIGN KEY (targetTechnologyName) 
    REFERENCES technologies(technologyName)
);

我想进一步简化technologySynonyms表定义,如下所示:

CREATE TABLE technologySynonyms (
  synonymId              INT PRIMARY KEY AUTO_INCREMENT,
  sourceTechnologyName VARCHAR(50) UNIQUE,
  targetTechnologyName VARCHAR(50) REFERENCES technologies(technologyName)
);

我没有收到任何错误 - 查询执行正常并且创建了表,但是当我插入一条验证外键约束的记录时:

INSSERT INTO technologySynonyms (sourceTechnologyName, targetTechnologyName)
  VALUES ('JS', 'Value not present in technologies table!!');

记录已插入。

这给我留下了几个问题:

  1. 我的 SQL 有什么问题吗?这应该行不通吗?
  2. 我可以让 MySQL Workbench 变得更严格吗?如果查询立即被拒绝,我会更愿意。

最佳答案

关于mysql - 内联描述时外键约束无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30047826/

相关文章:

mysql - MySQL NULL 结果的返回值

SQL Server : Better to use varchar(MAX) or keep a separate notes table and INNER JOIN it?

sql - 如何使用seek pagination获取下一个数据集?

sql - 优化 SQL 距离查询

php - 创建MySQL时更多外键

php - 无法将opencart连接到mySQL数据库

mysql - 插入触发 SQL。插入新表后如何从另一个表中检索值

mysql - 如果外键本身

php - 使用 LIKE 子句时出现索引异常?

mysql - MySql 选择所需的指导