如何在sqlite3中限制数据长度

Raj*_*aja 3 c sqlite

我可以在sqlite3中限制列值的数据长度吗?

例如:varchar name(5),Insert语句接受5个以上的字符.

mu *_*ort 12

SQLite的治疗varchar(5)text(即无限的字符串),但你可以添加一个CHECK约束到列:

create table pancakes (
    name text check(name is null or length(name) <= 5)
)
Run Code Online (Sandbox Code Playgroud)

如果你name太长,这会给你一个"约束失败"的错误:

sqlite> create table pancakes (name text not null check(length(name) <= 5));
sqlite> insert into pancakes (name) values ('1234');
sqlite> insert into pancakes (name) values ('12345');
sqlite> insert into pancakes (name) values ('123456');
Error: constraint failed
Run Code Online (Sandbox Code Playgroud)