You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:23:58