MySQL check约束怎么不起作用?

mltong 2009-05-15 09:38:15
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)
...全文
1910 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengqiqiqinqin 2012-04-24
  • 打赏
  • 举报
回复
好吧 check 就相当于一个摆设吧~~~
lmg785132636 2010-06-07
  • 打赏
  • 举报
回复
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写滴 怎么写 把具体步骤告诉我 谢谢高手 我邮箱 liminggao1111@163.com 谢谢啦 thank you!
chenpengchengdou 2010-03-22
  • 打赏
  • 举报
回复
比如说password的长度为6-10位,在mysql数据库中怎样实现,请各位大侠帮忙解决哈!
chenpengchengdou 2010-03-22
  • 打赏
  • 举报
回复
如果可以不在代码中实现,在数据库中能不能实现
macower 2009-06-19
  • 打赏
  • 举报
回复
mysql 的check 只是修饰作用 !
2楼是对的
liangCK 2009-05-16
  • 打赏
  • 举报
回复
这个在前台控制吧.
ACMAIN_CHM 2009-05-15
  • 打赏
  • 举报
回复

没办法,这个CHECK只是个摆设。MySQL会直接忽略。

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


mltong 2009-05-15
  • 打赏
  • 举报
回复
不好意思,刚复制到时候少了一点
创建表的时候是 no int check(no <= 4 and no >= 1

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧