1

我正在使用 Sybase Power Designer 从物理数据模型创建数据库(Sybase 创建 SQL 文件)。当我使用 phpMyAdmin 导入 SQL 文件时,出现以下错误:

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 7 行的 'if exists(select 1 from sys.sysforeignkey where role='FK_ARTWORK_CREATES_ARTIST'' 附近使用正确的语法。

有任何想法吗?出现此错误可能是由于物理模型上的错误还是存在其他问题?

这是代码:

if exists(select 1 from sys.sysforeignkey where role='FK_ARTWORK_HAS_BUY') then
    alter table artwork
       delete foreign key FK_ARTWORK_HAS_BUY
end if;
4

2 回答 2

1

您得到的错误来自 MySQL。不管用于生成 SQL 的工具是什么,数据库似乎都是 MySQL(或者如果您的系统感到困惑并认为它们是 MySQL,那么您的系统就出现了严重错误)。

MySQLif语句(在此处记录)必须位于存储程序中。这意味着此代码仅在存储过程、用户定义的函数或触发器中编译。它本身并不能“正常工作”。

此外,MySQL 没有sys表。它使用information_schema表格。我最强烈的建议是使用适合您实际数据库的工具。如果您使用工具生成 Sybase,则使用 Sybase 作为目标数据库。如果您使用的是 MySQL,请使用工具生成 MySQL 代码。或者,更好的是,学习如何自己编写命令。

最后,如果您打算使用 Sybase,请连接到正确的数据库,您的问题应该会得到解决。

于 2014-06-20T10:20:18.580 回答
0

由于我不能在这里发帖,而且 sqlfiddle.com 暂时不可用,我决定在PasteBin上发布具有正确语法的 Sybase 代码

于 2014-06-20T10:11:51.380 回答