SQLite - NOT NULL约束失败

fig*_*r20 0 sql sqlite constraints

我正在尝试创建一个简单的SQLite数据库,允许我存储电子邮件地址和时间戳.我创建了这样的表:

$sql =<<<EOF
        CREATE TABLE ENTRIES
        (ID INT PRIMARY KEY      NOT NULL,
        EMAIL           EMAIL    NOT NULL,
        TIMESTAMP DATETIME DEFAULT CURRENT_TIMESTAMP);
EOF;
Run Code Online (Sandbox Code Playgroud)

我正在尝试插入这样的电子邮件:

$sql =<<<EOF
      INSERT INTO ENTRIES (EMAIL)
      VALUES (test@test.com);
EOF;
Run Code Online (Sandbox Code Playgroud)

我收到了一个错误

NOT NULL constraint failed: ENTRIES.ID
Run Code Online (Sandbox Code Playgroud)

我假设这与ID和自动增量有关吗?我已阅读文档,并建议不要使用自动增量.我哪里错了?

小智 8

文档说:

如果表包含INTEGER PRIMARY KEY类型的列,则该列将成为ROWID的别名.

并且因为它成为ROWID的别名,所以没有必要明确指定值.

你有INT PRIMARY KEY,不是INTEGER PRIMARY KEY.如果将其更改为INTEGER PRIMARY KEY,则按预期方式工作.