【问题标题】:mysqlimport - issue with spaces in table namemysqlimport - 表名中的空格问题
【发布时间】:2011-02-25 19:14:18
【问题描述】:

在这里处理一些严重无能的数据库设计。将应用程序从 MS Access 迁移到 mySQL,目前保留表名很重要。但是 Access db 创建者的表名中有空格...

我尝试使用软引号、硬引号、反引号和不带引号进行此导入,但都给出了

    "check the manual that corresponds to your MySQL server version for the right
    syntax to use near 'Citation Table' at line 1, 
    when using table: Chain Citation Table"

我看到您可以在某些命令中转义空格,例如rm Chain\ Citation\ Table.txt,但我得到了同样的错误。

这是一个例子:

mysqlimport --host=mysql.myhost.com --user=dbuser -p \
--local --delete \
--fields-optionally-enclosed-by='|'   \
--fields-terminated-by=';' \
--lines-terminated-by='\n'   \
dbname "Chain Citation Table.txt"

处理这种混乱情况的正确方法是什么?我是否必须创建一个名为 SomethingWithoutSpaces 的保存表并导入到它然后复制?

感谢您的建议。

【问题讨论】:

  • 如果您要迁移数据并保留 Access 前端,请随意重命名 MySQL 中的表,然后在创建链接表后,将它们命名为旧的 Access 名称。

标签: ms-access mysqlimport


【解决方案1】:

您可以尝试使用此 Access to MySQL converter ,它过去对我来说效果很好。

【讨论】:

  • 感谢您的建议。不幸的是,Bullzip 产品似乎无法处理导出 Access 存储的特殊字符(如 é 或 à)的 ASCII 表示。我勾选了 UTF-8 选项,但我只是得到了疯狂的 ASCII 废话。
  • 关于 Bullzip 产品的另一条评论是,请求支持的电子邮件请求和在他们的论坛上发帖完全被忽略了。
  • 是的,它绝对不是最好的程序。我使用它时的最后期限很短,所以它在紧要关头工作,但可能不是最好的解决方案。
【解决方案2】:

最后我的解决方案是将大量分隔文件拆分为多个部分并通过 phpMyAdmin 导入。如果有人知道为 mysqlimport 语法指定带有空格的表名的方法,我将不胜感激!

// 4.19.2011 更新

找到了使用 SQL 的更好方法,呵呵。

TRUNCATE TABLE `Chain Citation Table`;
LOAD DATA LOCAL  INFILE ' Chain Citation Table.txt' INTO TABLE `Chain Citation Table`;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多