从火鸟导入到mysql时出错
问题描述:
我使用phpMyAdmin创建了一个名为test的数据库。从火鸟导入到mysql时出错
从命令提示符我尝试这样做:
c:\xampp\mysql\bin>mysql -u root test < c:\scriptTest\Telemed.sql
,并得到这个错误:
ERROR 1064 (42000) at line 7: You have an error in your SQL syntax; check the ma
nual that corresponds to your MariaDB server version for the right syntax to use
near ''127.0.0.1/gds_db:C:\TELEMED\TELEMED.GDB' USER 'SYSDBA'
PAGE_SIZE 4096
D' at line 1
我的脚本文件有这个
/* SQL Manager Lite for InterBase and Firebird 5.2.3.2 */
/* --------------------------------------------------- */
/* Host : localhost */
/* Database : C:\TELEMED\TELEMED.GDB */
CREATE DATABASE '127.0.0.1/gds_db:C:\TELEMED\TELEMED.GDB' USER 'SYSDBA'
PAGE_SIZE 4096
DEFAULT CHARACTER SET NONE;
可有人请让我知道什么是错的。
答
显示的create database
语句是火鸟特定的。你需要将它翻译成与MySQL相同的东西。你可以找到the MySQL equivalent in the reference manual:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
简单create database telemed
可能是你所需要的;尽管您应该仔细考虑是否需要缺省字符集。
如果您已经创建了数据库,您可以简单地删除此语句。
请注意,这适用于迁移时的更多事情,例如Firebird中的引用对象名称用双引号(SQL标准)括起来,而MySQL使用反引号。在语法和数据类型等方面可能也存在一些差异。
这样的标记可以被包含在SQL中的_backticks_中,但不能包含在_single quote chars_中。您的文件语法无效。 MySQL没有办法做到这一点。 – arkascha
除此之外:数据库名称“127.0.0.1/gds_db:C:\TELEMED\TELEMED.GDB”看起来不像是一个聪明的事情... – arkascha
@arkascha在Firebird中标识服务器(127.0.0.1 ),端口(gds_db aka端口3050)和数据库路径(C:\ TELEMED \ TELEMED.GDB),尽管通常使用别名而不是完整路径更好。 –