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 ......’那么,有什么麻烦如何解决呢谢谢
答
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
这AUTOINCREMENT不是 'AUTO_INCREMENT'。在SQLLite中,不存在AUTO_INCREMENT。 – Ajit 2014-09-22 08:57:51