创建 `sqlite_sequence` 表出现错误

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

我想创建一个新表,但它说我的查询是错误的,而且我不知道查询出了什么问题,因为我从 SQLite 数据库浏览器导出了数据库。 这是查询,

CREATE TABLE sqlite_sequence(name,seq);

它说

#1064
- 您的 SQL 语法有错误;检查手册 与您的 MySQL 服务器版本相对应,以便使用正确的语法 第 1 行“seq)”附近

如果我可以创建该表,我想用这个插入到该表中,

INSERT INTO sqlite_sequence VALUES('objek',55);

我希望它不会再犯错误。

请告诉我你的意见。

sql mysql database sqlite database-table
7个回答
2
投票

您的 DDL 中唯一缺少的是它缺少列上的数据类型,

CREATE TABLE sqlite_sequence
(
    name VARCHAR(20),
    seq INT
);

更新1


2
投票

当您将表的数据字段分配给自增(例如_id整数主键自增)时,sqlite_sequence表会自动生成

无法手动创建名为 sqlite_sequence 的表,因为“表名称不能以 sqlite_ 开头,作为保留供内部使用的对象名称:SQLITE_SEQUENCE”


0
投票

您需要指定

name
seq
的数据类型。

尝试:

create table SQLITE_SEQUENCE ( name varchar(255), seq int );

0
投票

为字段(列)定义

data type

CREATE TABLE sqlite_sequence(name varchar(200),seq int(8));

0
投票

这里是一个普通的建表命令供参考:

CREATE TABLE demo (id integer NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE DEFAULT 0,name text);

是的,

INSERT
命令没有问题。


0
投票

您必须在每个表字段之后定义数据类型,如下所示:

CREATE TABLE sqlite_sequence (
                name VARCHAR(45),   
                seq INT
              );

0
投票

在 SQLite 中,您无法手动创建

sqlite_sequence
表,因为
sqlite_sequence
表被保留用于在内部使用 AUTOINCRMENT 创建它。

医生说如下:

SQLite 使用名为“sqlite_sequence”的内部表来跟踪最大的 ROWID。每当创建包含 AUTOINCREMENT 列的普通表时,都会自动创建 sqlite_sequence 表并对其进行初始化。

因此,如果您尝试手动创建

sqlite_sequence
表,如下所示:

CREATE TABLE sqlite_sequence (
  name TEXT
);

然后,您会收到以下错误:

解析错误:保留供内部使用的对象名称:sqlite_sequence

© www.soinside.com 2019 - 2024. All rights reserved.