mysql> create table ss
    -> (
    ->  no int check(no <= 4 and no >=
    -> );
Query OK, 0 rows affected (0.11 sec)mysql> insert into ss values(1);
Query OK, 1 row affected (0.01 sec)mysql> select * from ss;
+------+
| no   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)mysql> insert into ss values(5);
Query OK, 1 row affected (0.03 sec)mysql> select * from ss;
+------+
| no   |
+------+
|    1 |
|    5 |
+------+
2 rows in set (0.00 sec)

解决方案 »

  1.   

    不好意思,刚复制到时候少了一点
    创建表的时候是  no int check(no <= 4 and no >= 1
      

  2.   

    没办法,这个CHECK只是个摆设。MySQL会直接忽略。CHECK子句会被分析,但是会被忽略。请参见13.1.5节,“CREATE TABLE语法”。接受这些子句但又忽略子句的原因是为了提高兼容性,以便更容易地从其它SQL服务器中导入代码,并运行应用程序,创建带参考数据的表。请参见1.8.5节,“MySQL与标准SQL的差别”。
    
      

  3.   

    mysql 的check  只是修饰作用 !
    2楼是对的
      

  4.   

    比如说password的长度为6-10位,在mysql数据库中怎样实现,请各位大侠帮忙解决哈!
      

  5.   

    create table stu 
    ( stuId varchar(30) primary key,
      stuName nvarchar(50) not null,
      stuSex nchar(1) checck(stuSex in('男','女')) default '男',
      stuAge int check(stuAge>1),
      stuJg nvarchar(30),
      stuDept nvarchar(40))用mysql怎么建立一样性质的这样的表。。用naviate写滴 怎么写 把具体步骤告诉我 谢谢高手 我邮箱 [email protected] 谢谢啦 thank you!
      

  6.   

    好吧 check 就相当于一个摆设吧~~~