#1064 - 你在你的SQL语法错误; 检查对应于你的MySQL服务器版本的手册(#1064

2019-10-20 08:17发布

我使用Sybase电源设计师创建一个物理数据模型数据库(Sybase创建一个SQL文件)。 当我导入SQL文件与phpMyAdmin我有以下错误:

#1064 - 你在你的SQL语法错误; 检查对应于你的MySQL服务器版本使用附近的正确语法手册“如果存在(从SYS.SYSFOREIGNKEY选择1哪些作用=” FK_ARTWORK_CREATES_ARTIST'在第7行。

有任何想法吗? 难道这错误的物理模型出现因错误或有其他问题?

这是代码:

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;

Answer 1:

你所得到的错误是从MySQL。 无论用来生成SQL工具,数据库似乎是MySQL的(或东西是可怕的错误与您的系统,如果他们感到困惑,认为他们是MySQL的)。

MySQL的if声明(记录在这里 ),必须有一个存储程序中。 这意味着,这个代码只存储过程,用户定义的函数,或触发器内编译。 它不“只是工作”上一把。

此外,MySQL没有sys表。 它采用information_schema表。 我最大的建议是使用适当的工具为您的实际的数据库。 如果您使用的是工具生成的Sybase,则使用Sybase作为目标数据库。 如果你正在使用MySQL,然后使用工具来生成MySQL代码。 或者,更好的是,学会如何写自己的命令。

最后,如果你打算使用Sybase,然后连接到正确的数据库,你的问题应该是固定的。



Answer 2:

正如我不能张贴在这里,和sqlfiddle.com临时不可用,我决定后语法正确的代码为Sybase的引擎收录



文章来源: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version