首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表中未创建外键

问表中未创建外键
EN

Stack Overflow用户
提问于 2014-07-28 12:24:53
回答 3查看 34关注 0票数 0

第一表:

代码语言:javascript
复制
create table login(
  id int auto_increment, 
  user varchar(20), 
  pass varchar(20), 
  primary key(id)
);

第一个表是用主键创建的。

第二表:

代码语言:javascript
复制
create table check(
  cid int, 
  rid int, 
  usname varchar(20), 
  word varchar(20), 
  FOREIGN KEY(rid) REFERENCES login(id)
);

错误:

代码语言:javascript
复制
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'check
(cid int, rid int, usname varchar(20), word varchar(20), FOREIGN KEY(rid) R' at
line 1
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-28 12:27:24

问题不在于外键。check是MySQL中的一个保留字。因此,您需要选择另一个名称或转义它:

代码语言:javascript
复制
create table `check`(
    cid int,
    rid int,
    usname varchar(20),
    word varchar(20),
    FOREIGN KEY(rid) REFERENCES login(id)
);

具有讽刺意味的是,虽然它是一个保留词,但实际上并没有被使用。唉,我确实希望MySQL支持check约束。

顺便说一下,这里是一个SQL。

票数 2
EN

Stack Overflow用户

发布于 2014-07-28 12:27:31

check是MySQL中的一个关键字;要么用backticks包围它,‘,要么选择一个不同的名称。

票数 0
EN

Stack Overflow用户

发布于 2014-07-28 12:30:07

更改表check的名称。Check是MySQL中的一个保留字

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24995214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档