SQLite指定主键

mdfafbf1  于 2023-02-09  发布在  SQLite
关注(0)|答案(1)|浏览(148)

简而言之,我有这样一个条款:

CREATE TABLE IF NOT EXISTS `journalData` 
(
    `JD_Key` INTEGER PRIMARY KEY AUTOINCREMENT, 
    `JD_Event_Key` INTEGER, 
    `JD_VarCount` INTEGER, 
    `JD_VarTypes` TEXT, 
    `JD_VarValues` TEXT,
    `JD_EventDate` TEXT 
);

INSERT INTO `journalData` 
VALUES (24, 0, '', '', '04.02.2023 20:26:18');

根据SQLite关于AUTOINCREMENT(https://www.sqlitetutorial.net/sqlite-autoincrement/)的教程,它如下所示:
其次,插入另一行,但不为person_id列指定值:

INSERT INTO people (first_name,last_name)
VALUES('William','Gate');

这意味着,您可以添加行到表,而不必指定表的主键,但我得到这个错误:
未捕获的错误:表journalData有6列,但提供了5个值
我在这里做错了什么?我已经尝试添加单行与键之前提到的插入。但我不断得到这个错误

muk1a3rh

muk1a3rh1#

我找到了一个解决方案,似乎这个错误有点误导,我必须指定列名。
不过,如果我指定了table中的所有值,则不必指定列名,因此,在测试期间,我假设这里的语法类似于MySQL,根据我的经验,您不必在这种情况下指定名称。
所以下面的查询对我很有效。

INSERT INTO `journalData` 
(JD_Event_Key, JD_VarCount, JD_VarTypes, JD_VarValues, JD_Event_Date) 
VALUES (24,0,'','','04.02.2023 20:26:18');

相关问题