我想创建一个新表,但它说我的查询是错误的,而且我不知道查询出了什么问题,因为我从 SQLite 数据库浏览器导出了数据库。 这是查询,
CREATE TABLE sqlite_sequence(name,seq);
它说
- 您的 SQL 语法有错误;检查手册 与您的 MySQL 服务器版本相对应,以便使用正确的语法 第 1 行“seq)”附近#1064
如果我可以创建该表,我想用这个插入到该表中,
INSERT INTO sqlite_sequence VALUES('objek',55);
我希望它不会再犯错误。
请告诉我你的意见。
您的 DDL 中唯一缺少的是它缺少列上的数据类型,
CREATE TABLE sqlite_sequence
(
name VARCHAR(20),
seq INT
);
更新1
当您将表的数据字段分配给自增(例如_id整数主键自增)时,sqlite_sequence表会自动生成
无法手动创建名为 sqlite_sequence 的表,因为“表名称不能以 sqlite_ 开头,作为保留供内部使用的对象名称:SQLITE_SEQUENCE”
您需要指定
name
和 seq
的数据类型。
尝试:
create table SQLITE_SEQUENCE ( name varchar(255), seq int );
为字段(列)定义
data type
CREATE TABLE sqlite_sequence(name varchar(200),seq int(8));
这里是一个普通的建表命令供参考:
CREATE TABLE demo (id integer NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE DEFAULT 0,name text);
是的,
INSERT
命令没有问题。
您必须在每个表字段之后定义数据类型,如下所示:
CREATE TABLE sqlite_sequence (
name VARCHAR(45),
seq INT
);
在 SQLite 中,您无法手动创建
sqlite_sequence
表,因为 sqlite_sequence
表被保留用于在内部使用 AUTOINCRMENT 创建它。
医生说如下:
SQLite 使用名为“sqlite_sequence”的内部表来跟踪最大的 ROWID。每当创建包含 AUTOINCREMENT 列的普通表时,都会自动创建 sqlite_sequence 表并对其进行初始化。
因此,如果您尝试手动创建
sqlite_sequence
表,如下所示:
CREATE TABLE sqlite_sequence (
name TEXT
);
然后,您会收到以下错误:
解析错误:保留供内部使用的对象名称:sqlite_sequence