【问题标题】:Conversion of query from oracle to mysql从oracle到mysql的查询转换
【发布时间】:2016-03-07 06:28:45
【问题描述】:

如何将以下查询从 oracle 转换为 mysql。

ALTER 表测试 添加约束 TEST_FK 外键 (id) REFERENCES another_table(id) ON DELETE CASCADE 启用 NOVALIDATE;

当我转换这个时,我在 mysql 中得到以下错误

错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在“启用 NOVALIDATE”附近使用的正确语法 任何人都可以帮我解决这个问题。

谢谢 SKP

【问题讨论】:

  • 尝试不使用ENABLE NOVALIDATE

标签: mysql oracle


【解决方案1】:

这是使用 alter query Official 添加外键的标准语法

ALTER TABLE tbl_name
ADD [CONSTRAINT [symbol]] 
    FOREIGN KEY [index_name] (index_col_name, ...)
    REFERENCES tbl_name (index_col_name,...)
    [ON DELETE reference_option]
    [ON UPDATE reference_option]

在您的查询中删除ENABLE NOVALIDATE。试试这个

ALTER table test 
  ADD CONSTRAINT TEST_FK 
      FOREIGN KEY (id) REFERENCES another_table(id) 
      ON DELETE CASCADE;

示例 http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html

ALTER TABLE products
  ADD FOREIGN KEY fk_vendor(vdr_id) REFERENCES vendors(vdr_id)
      ON DELETE NO ACTION
      ON UPDATE CASCADE;

【讨论】:

    猜你喜欢
    • 2021-01-31
    • 2019-07-29
    • 2018-11-01
    • 2013-07-10
    • 2013-09-06
    • 1970-01-01
    • 2015-10-03
    • 2016-11-17
    • 2016-04-10
    相关资源
    最近更新 更多