通过脚本创建SQLite数据库

时间:2014-09-22 08:55:26

标签: sql 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 ......""。那么,问题是什么?我该如何解决?谢谢!

2 个答案:

答案 0 :(得分:1)

在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

答案 1 :(得分:0)

SQLite语法:

 `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL