【发布时间】:2022-01-06 18:21:23
【问题描述】:
我有 SQLite 数据库(在 SQLiteStudio 中创建)。
DDL 是这样的:
CREATE TABLE player (
player_id INTEGER PRIMARY KEY ASC AUTOINCREMENT
UNIQUE
NOT NULL,
first_nickname STRING (10) NOT NULL,
health INTEGER (100) NOT NULL,
gold INTEGER (99) NOT NULL,
silver INTEGER (99) NOT NULL,
bronze INTEGER (99) NOT NULL,
gerium INTEGER (99) NOT NULL
);
预期:我应该无法将大于 100 的整数插入到 health 列中。
会发生什么:出于某种原因,我可以插入大于 100 的数字
为什么我能...
INSERT INTO player (first_nickname, health, gold, silver, bronze, gerium) VALUES ('Foo', 101, 0, 0, 15, 0)
...如果我的health 的列设置为 INTEGER,最大值为 100?
为什么我应该只能输入 100 却可以插入 101?
【问题讨论】:
标签: sqlite create-table check-constraints