我正在使用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;
答案 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语法的代码