15

フィールド「名前」の長さを最大20文字にしたい... sqlliteで可能ですか?

4

2 に答える 2

42

はい、CHECK CONSTRAINTS を使用します。以下は、長さが 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

No. SQLite バージョン 3 のデータ型ごとに、

型名に続く括弧内の数値引数 (例: "VARCHAR(255)") は、SQLite によって無視されることに注意してください。SQLite は、文字列、BLOB、または数値。

于 2012-08-21T14:07:29.587 に答える