Sqlite不接受创建表

问题描述 投票:0回答:1

我试图在终端的sqlite3上创建一个表。命令是这样的。

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 但我找不到它。任何修复它的建议将是非常有用的.谢谢你的时间。

sql sqlite auto-increment
1个回答
0
投票

你的语法是错误的。关键字应该是 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
);
© www.soinside.com 2019 - 2024. All rights reserved.