SQLite中如何为表的gender列指定仅接受'M'或'F'的约束?
给SQLite表的gender列添加值约束的方法
嘿,这个需求我太熟啦!要让SQLite里的gender列只能接受'M'或'F'这两个值,你得用上CHECK约束——这是SQLite专门用来限制列值范围的实用手段。
你原来的示例语句可以修改成这样:
CREATE TABLE bears ( id INTEGER PRIMARY KEY, name TEXT, age INTEGER, gender TEXT CHECK(gender IN ('M', 'F')) );
额外说明:
CHECK(gender IN ('M', 'F'))这个约束会直接绑定到gender列,每当你插入或更新数据时,SQLite都会自动校验该列的值是否在允许范围内,不符合的操作会被直接拒绝。- 要是你想强制
gender列必须填写值(不能为NULL),可以再追加NOT NULL约束,写法如下:gender TEXT NOT NULL CHECK(gender IN ('M', 'F')) - 如果你已经创建了表,之后想补加这个约束,也可以用
ALTER TABLE语句:ALTER TABLE bears ADD CONSTRAINT check_gender CHECK(gender IN ('M', 'F'));
内容的提问来源于stack exchange,提问作者alexnewby
相关产品推荐
相关产品推荐

