【问题标题】:converted sqlite db wont import with phpmyadmin转换 sqlite db 不会使用 phpmyadmin 导入
【发布时间】:2014-01-04 03:05:02
【问题描述】:

已将 sqlite3 转换为 mysql,但在 phpMyAdmin 中导入失败并产生此错误:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'PRIMARY KEY NOT NULL ,sequence VARCHAR,items_count INTEGER,total FLOAT,`c' 附近使用正确的语法

我错过了什么?

DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (`id` VARCHAR PRIMARY KEY NOT NULL ,`sequence` VARCHAR,`items_count` INTEGER,`total` FLOAT,`change` FLOAT,`tax_subtotal` FLOAT,`surcharge_subtotal` FLOAT,`discount_subtotal` FLOAT,`payment_subtotal` FLOAT,`rounding_prices` VARCHAR,`precision_prices` VARCHAR,`rounding_taxes` VARCHAR,`precision_taxes` VARCHAR,`status` INTEGER,`service_clerk` VARCHAR,`service_clerk_displayname` VARCHAR,`proceeds_clerk` VARCHAR,`proceeds_clerk_displayname` VARCHAR,`member` VARCHAR,`member_displayname` VARCHAR,`member_email` VARCHAR,`member_cellphone` VARCHAR,`invoice_type` VARCHAR,`invoice_title` VARCHAR,`invoice_no` VARCHAR,`invoice_count` INTEGER,`destination` VARCHAR,`table_no` INTEGER,`check_no` INTEGER,`no_of_customers` INTEGER,......

【问题讨论】:

  • 看起来您缺少 VARCHAR 列的数据长度。 MySQL 需要像 VARCHAR(32) 这样的长度
  • 非常感谢!我现在被分配了 mysql 项目,我对此一无所知。知道它必须是简单的。

标签: mysql sqlite phpmyadmin


【解决方案1】:

SQLite 和 MySQL 的语法略有不同。

以下答案来自here

这里列出了我所知道的两种文件格式之间的所有 SQL 语法差异:以下行开头:

BEGIN TRANSACTION
COMMIT
sqlite_sequence
CREATE UNIQUE INDEX

在 MySQL 中不使用

SQLlite uses CREATE TABLE/INSERT INTO "table_name" and MySQL uses CREATE TABLE/INSERT INTO table_name
MySQL doesn't use quotes inside the schema definition
MySQL uses single quotes for strings inside the INSERT INTO clauses
SQLlite and MySQL have different ways of escaping strings inside INSERT INTO clauses
SQLlite uses 't' and 'f' for booleans, MySQL uses 1 and 0 (a simple regex for this can fail when you have a string like: 'I do, you don\'t' inside your INSERT INTO)
SQLLite uses AUTOINCREMENT, MySQL uses AUTO_INCREMENT

上面的链接将在这方面提供更多帮助。

【讨论】:

  • 我已经尝试过该线程,但没有帮助。可能是因为我的错误太简单了,不用提了
  • @n8techy 我过去也遇到过类似的问题。我遵循的方法是,首先使用导出功能:link,然后将上述所有关键字替换为 sql 文件中的 MySQL 等价词。
猜你喜欢
  • 2015-01-21
  • 2016-12-04
  • 1970-01-01
  • 2015-09-14
  • 1970-01-01
  • 2012-05-29
  • 2012-09-07
  • 2018-12-16
  • 2014-05-21
相关资源
最近更新 更多