Sqlite 不接受创建 table
Sqlite does not accept create table
我正在尝试在终端的 sqlite3 上创建 table。该命令如下所示:
CREATE TABLE test (
id int not null auto_increment primary key ,
col2 varchar(25) not null ,
col2 varchar(40) not null ,
col3 varchar(20) not null ,
col4 float not null
) engine = MYISAM ;
我经常收到 Error: near "auto_incement": syntax error
但我找不到。任何修复它的建议都会非常有帮助。
谢谢你的时间。
你的语法错误。
关键字应该是 AUTOINCREMENT
而不是 AUTO_INCREMENT
并且它只能在您将列定义为 INTEGER PRIMARY KEY
.
时使用
但是话又说回来,你真的不需要 AUTOINCREMENT
在定义中:
id INTEGER PRIMARY KEY
通过将列定义为integer primary key
,它也将自动递增。
如果在定义中使用关键字 AUTOINCREMENT
:
id INTEGER PRIMARY KEY AUTOINCREMENT
那么列 id
中的值将永远不会被重复使用(因此在删除一行后,id 中将出现间隙)。
当然不需要 NOT NULL
因为你定义了一个主键并且 SQLite 不支持存储引擎的定义(就像 MySql 一样)。
因此,将您的声明更改为:
CREATE TABLE test (
id integer primary key ,
col1 varchar(25) not null ,
col2 varchar(40) not null ,
col3 varchar(20) not null ,
col4 float not null
);
我正在尝试在终端的 sqlite3 上创建 table。该命令如下所示:
CREATE TABLE test (
id int not null auto_increment primary key ,
col2 varchar(25) not null ,
col2 varchar(40) not null ,
col3 varchar(20) not null ,
col4 float not null
) engine = MYISAM ;
我经常收到 Error: near "auto_incement": syntax error
但我找不到。任何修复它的建议都会非常有帮助。
谢谢你的时间。
你的语法错误。
关键字应该是 AUTOINCREMENT
而不是 AUTO_INCREMENT
并且它只能在您将列定义为 INTEGER PRIMARY KEY
.
时使用
但是话又说回来,你真的不需要 AUTOINCREMENT
在定义中:
id INTEGER PRIMARY KEY
通过将列定义为integer primary key
,它也将自动递增。
如果在定义中使用关键字 AUTOINCREMENT
:
id INTEGER PRIMARY KEY AUTOINCREMENT
那么列 id
中的值将永远不会被重复使用(因此在删除一行后,id 中将出现间隙)。
当然不需要 NOT NULL
因为你定义了一个主键并且 SQLite 不支持存储引擎的定义(就像 MySql 一样)。
因此,将您的声明更改为:
CREATE TABLE test (
id integer primary key ,
col1 varchar(25) not null ,
col2 varchar(40) not null ,
col3 varchar(20) not null ,
col4 float not null
);