15

我想要一个字段“名称”最多 20 个字符......在 sqllite 中是否可能?

4

2 回答 2

42

是的,带有检查约束。这是一个强制使用长度小于或等于 20 个字符的 TEXT 数据类型的示例。

CREATE TABLE IF NOT EXISTS "test"
(
    "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
    "name" TEXT NOT NULL
    CHECK(
        typeof("name") = "text" AND
        length("name") <= 20
    )
);

INSERT INTO "test" ("name") VALUES ("longer than twenty characters");

结果:

Error: CHECK constraint failed: test

帮助 OP 可能为时已晚,但也许其他人会发现这很有用。

于 2015-10-07T21:15:40.807 回答
12

编号 每个SQLite 版本 3 中的数据类型

请注意,类型名称后面的括号中的数字参数(例如:“VARCHAR(255)”)会被 SQLite 忽略 - SQLite 不会对字符串、BLOB 或数值。

于 2012-08-21T14:07:29.587 回答