限制文本字段的字符数

时间:2012-08-21 14:00:49

标签: sqlite

我想要一个字段“name”最多20个字符...是否可以sqllite?

2 个答案:

答案 0 :(得分:33)

是CHECK CONSTRAINTS。以下是强制TEXT数据类型的示例,其长度小于或等于20个字符。

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,但也许其他人会觉得这很有用。

答案 1 :(得分:10)

没有。每Datatypes In SQLite Version 3

  

请注意类型后面的括号中的数字参数   SQLite忽略了name(例如:“VARCHAR(255)”) - SQLite没有   施加任何长度限制(除了大的全球   SQLITE_MAX_LENGTH limit)对字符串,BLOB或数字的长度   值。