我有一张表,表结构如下
create table user(
uid int auto_increment primary key, -- 用户ID
uname varchar(20) not null unique, -- 用户名
upwd varchar(20) not null, -- 用户密码
sex varchar(2),-- 用户性别
age char(3))   -- 用户年龄
); 怎么给sex 和 age 创建一个检查约束,sex只能输入'男'或者'女'.
age 年龄是1-150 岁。

解决方案 »

  1.   

    sex只能输入'男'或者'女'.
    可以使用ENUMage 年龄是1-150 岁。
    只能在触发器中实现。
    create table user(
    uid int auto_increment primary key, -- 用户ID
    uname varchar(20) not null unique, -- 用户名
    upwd varchar(20) not null, -- 用户密码
    sex ENUM('男', '女') ,-- 用户性别
    age char(3))   -- 用户年龄
    );  
      

  2.   

    谢谢!!但是sex ENUM('男', '女')这样创建好了,插入数据的时候,如果不是输入的'男'或'女',它插入的是一个空的值。
    有没有跟好一点的啊,比如说如果插入数据的时候不是'男'或'女’。就不能插入数据。。
      

  3.   

    加个 not null 试试!
      

  4.   

    age 年龄在1-150 岁之间的触发器怎么创建啊·!
      

  5.   


    同意,太多的约束检查在数据库上,会使DB  Server性能上有点问题