我正在使用 Sybase Power Designer 从物理数据模型创建数据库(Sybase 创建 SQL 文件)。当我使用 phpMyAdmin 导入 SQL 文件时出现以下错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'if exists(select 1 from sys.sysforeignkey where role='FK_ARTWORK_CREATES_ARTIST'' at line 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;
最佳答案
您收到的错误来自 MySQL。无论用于生成 SQL 的工具如何,数据库似乎都是 MySQL(或者如果您的系统混淆并认为它们是 MySQL,则您的系统出现了严重错误)。
MySQL if
语句(记录在 here 中)必须在存储程序中。这意味着此代码仅在存储过程、用户定义函数或触发器内部编译。它不会“单独工作”。
此外,MySQL 没有sys
表。它使用 information_schema
表。我最强烈的建议是使用适合您实际数据库的工具。如果你是使用工具生成Sybase,那么使用Sybase作为目标数据库。如果你正在使用 MySQL,那么使用一个工具来生成 MySQL 代码。或者,更好的是,学习如何自己编写命令。
最后,如果您打算使用 Sybase,则连接到正确的数据库,您的问题应该得到解决。
关于mysql - #1064 - 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24324636/