#1064 - 您的SQL语法有错误;查看与MySQL服务器版本对应的手册

时间:2014-06-20 09:58:17

标签: mysql sql sybase mysql-error-1064 powerdesigner

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

  

#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在#c;如果存在的情况下使用正确的语法(从sys.sysforeignkey中选择1,其中role =&#39; FK_ARTWORK_CREATES_ARTIST&#39;&#39;在第7行。< / p>

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

这是代码:

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;

2 个答案:

答案 0 :(得分:1)

您获得的错误来自MySQL。无论用于生成SQL的工具如何,数据库似乎都是MySQL(如果系统混淆并且认为它们是MySQL,那么系统会出现严重错误)。

MySQL if语句(记录为here)必须位于存储程序中。这意味着此代码仅在存储过程,用户定义函数或触发器内编译。它没有&#34;只是工作&#34;独自一人。

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

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

答案 1 :(得分:0)

由于我无法在此处发布,并且sqlfiddle.com暂时不可用,因此我决定在PasteBin

上发布具有正确Sybase语法的代码