首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试在SQL8.0上打开表时出错

尝试在SQL8.0上打开表时出错
EN

Database Administration用户
提问于 2019-10-16 19:03:06
回答 1查看 91关注 0票数 -2

我需要打开一张表,表示主人采用了什么动物(关系是一对多的)。我以外键和一些列开头,但在尝试打开该表后,会出现一个错误。

这是我考试中的一个问题:

  • 主键是owner_id ​pet_id和 的组合。
  • owner_id​从​owner​表引用​id​。
  • pet_id​从​pet​表引用​id​。一定是独一无二的。
  • 其他专栏:adoption_date

这是我写的剧本

代码语言:javascript
运行
复制
CREATE TABLE `pet shelter`.`adoption` (
  `adoption_date` INT NULL,
  CONSTRAINT `owner_id`
    FOREIGN KEY ()
    REFERENCES `pet shelter`.`owner` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `pet_id`
    FOREIGN KEY ()
    REFERENCES `pet shelter`.`pet` ()
    ON DELETE CASCADE
    ON UPDATE CASCADE);

但我知道这个错误:

操作失败:将SQL脚本应用于数据库时出错。

...followed由:

错误1064:您的SQL语法出现了错误;请检查与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在第4行中使用pet shelter.owner ()在删除UPDATE上的任何操作。

EN

回答 1

Database Administration用户

发布于 2019-10-20 02:36:22

参考资料:

https://dev.mysql.com/doc/refman/8.0/en/create-table.html

在你使用的任何一个地方都没有括号。

代码语言:javascript
运行
复制
[CONSTRAINT [symbol]] FOREIGN KEY
      [index_name] (col_name,...)
      reference_definition

reference_definition:
    REFERENCES tbl_name (key_part,...)
      [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
      [ON DELETE reference_option]
      [ON UPDATE reference_option]

所以:

代码语言:javascript
运行
复制
FOREIGN KEY ()
    REFERENCES `pet shelter`.`owner` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION

-->

代码语言:javascript
运行
复制
FOREIGN KEY 
    REFERENCES `pet shelter`(owner)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/251282

复制
相关文章

相似问题

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