MYSQL-无法创建外部密钥 [英] MYSQL - Impossible to create an external key
本文介绍了MYSQL-无法创建外部密钥的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是一个自学成才的CS,而且我真的是mySQL的新手.我创建了一个名为"jobs
"的表.我想创建一个具有3列的新表keywords
:
I am a self taught CS and I am really novice at mySQL. I created a table called "jobs
". I would like to create a new table keywords
with 3 columns:
-
keyword_id
作为主键 -
job_id
作为jobs
表中的外键 -
keyword
,文本
keyword_id
as a primary keyjob_id
as a foreign key from thejobs
tablekeyword
, text
这是我写的查询:
CREATE TABLE `keywords` (
`keyword_id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY(`keyword_id`),
`keyword` text NOT NULL,
FOREIGN KEY (job_id) REFERENCES jobs(job_id)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=latin1;
我收到此错误消息:
Key column 'job_id' doesn't exist in table
当前作业表代码如下:
CREATE TABLE `jobs` (
`title` text NOT NULL,
`type` text NOT NULL,
`location` text NOT NULL,
`salary` int(11) NOT NULL,
`description` text NOT NULL,
`date` date NOT NULL,
`job_id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`job_id`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=latin1;
推荐答案
您需要在keywords
表中具有一列以容纳外键.
You need to have a column in the keywords
table to hold the foreign key.
赞
CREATE TABLE `jobs` (
`title` text NOT NULL,
`type` text NOT NULL,
`location` text NOT NULL,
`salary` int(11) NOT NULL,
`description` text NOT NULL,
`date` date NOT NULL,
`job_id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`job_id`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=latin1;
CREATE TABLE `keywords` (
`keyword_id` int(11) NOT NULL AUTO_INCREMENT,
`keyword` text NOT NULL,
`job_id` int(11) NOT NULL, #<- new column
PRIMARY KEY(`keyword_id`),
FOREIGN KEY (job_id) REFERENCES jobs(job_id)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=latin1;
这篇关于MYSQL-无法创建外部密钥的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文