SQLite数据库通过脚本创建

问题描述:

有以下脚本:SQLite数据库通过脚本创建

CREATE TABLE IF NOT EXISTS `location_cities` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `location_region_id` int(11) NOT NULL DEFAULT '0', 
    `location_district_id` int(11) DEFAULT NULL, 
    `location_country_id` int(11) NOT NULL DEFAULT '0', 
    `lon` float(11,8) NOT NULL DEFAULT '0.00000000', 
    `lat` float(11,8) NOT NULL DEFAULT '0.00000000', 
    `prefix` varchar(50) DEFAULT NULL, 
    `name` varchar(128) NOT NULL, 
    `size` int(3) NOT NULL DEFAULT '0' COMMENT 'Размер города', 
    `tz_name` varchar(128) DEFAULT NULL, 
    `timezone` varchar(100) NOT NULL DEFAULT '+00:00', 
    `timezone2` varchar(100) NOT NULL DEFAULT '+00:00', 
    PRIMARY KEY (`ID`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=12393 ; 

当我尝试使用来执行它的sqlite3的db/development.sqlite3 < alogist.sql“我有错误“错误:近27行:近“AUTO_INCREMENT”:?!语法错误”(27 - 符合‘CREATE_TABLE ......’那么,有什么麻烦如何解决呢谢谢

+1

这AUTOINCREMENT不是 'AUTO_INCREMENT'。在SQLLite中,不存在AUTO_INCREMENT。 – Ajit 2014-09-22 08:57:51

SQLite中,自动增量列指定

INTEGER PRIMARY KEY AUTOINCREMENT 

用你的替换你的int(11) NOT NULL AUTO_INCREMENT

进一步的问题:

  • COMMENT不支持。删除COMMENT 'Размер города'

  • 删除PRIMARY KEY ( ID ) - 主键已被指定。

  • 删除特定于MySQL的ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=12393

SQLite的语法:

`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL