关于MySql无法使用check! 各位大哥帮帮忙啊!MySql好像不支持check约束吧,但是可以用触发器.

各位大哥帮帮忙啊!小弟第一次见识触发器这个神奇的名字,请大家给偶一个小小的例子,比如一张表中有个字段,例如sex,两个值“男”“女”,默认情况下是男,麻烦给个触发器的小例子,就用上面的sex。小弟第一次提问,全部分都献上了,谢谢啦~~

对于MySQL来说
对于 in 方式的 Check 可以采用enum 的方式处理

mysql> CREATE TABLE test_create_tab5 (
-> id INT PRIMARY KEY,
-> val VARCHAR(10) NOT NULL,
-> val2 enum ('1', '2', '3', '4', '5')
-> );
Query OK, 0 rows affected (0.08 sec)

mysql> INSERT INTO test_create_tab5(id, val, val2)
-> VALUES(1, 'ERR', 1);
Query OK, 1 row affected (0.03 sec)

mysql>
mysql> INSERT INTO test_create_tab5(id, val, val2)
-> VALUES(8, 'ERR', 8);
ERROR 1265 (01000): Data truncated for column 'val2' at row 1

对你来说。
没必要触发器
只需要
sex enum ('男', '女')
就可以了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-27
格式约束应该是APP做的事情,DB只是拿来存储和查询用的。

mysql check 无效
这是因为mysql是不支持check的,虽然语法上不会报错是,分析建表语句的时候会被忽略.以下是从手册中摘出来的原文.=== Innodb存储引擎支持FOREIGN KEY和REFERENCES子句。Innodb存储引擎执行ADD [CONSTRAINT [symbol]] FOREIGN KEY (...) REFERENCES ... (...)。请参见15.2.6.4节,“FOREIGN KEY约束...

在MYSQL程序中语句check还可以用什么代替
mysql不支持check约束,所以建议还是考虑用程序限定吧。另外,如果字段的取值范围较小,可以试试enum。

关于MySQL的检查约束不生效的问题
看来check约束是白写了,没有起作用. 经过上网查看发现,MySQL只是可以使用check约束, 但不会强制的遵循check约束! 官方推荐使用 枚举类型(ENUM) 来替代以上的使用check约束的情况.将表中的gender字段修改成如下类型: (注意修改前的表中数据不能有gender字段含有不是'M'或'F'的数据行,否则不...

MySQL怎么使用check约束
然而:mysql所有的存储引擎均不支持check约束,MySQL会对check子句进行分析,但是在插入数据时会忽略,因此check并不起作用,因此实现对数据约束有两种方法:1.在mysql种约束,如使用enum类型或者触发器等。2.在应用程序里面对数据进行检查再插入。使用 ENUM 限制插入的值,但是这种方式只能用于离散型数据,对...

mysql视图不能添加check约束怎么办(提示is not base table)?
只能在表上加约束

mysql check约束只能输入1到8怎么写?
mysql目前还不支持检查约束。如果你要是输入1-8之间的数字,可以把这个字段类型设置为enum类型,例如:status enum(1,2,3,4,5,6,7,8)这个status字段在插入数据的时候就只能插入1,2,3,4,5,6,7,8中的某一个。除此之外的数据将不能被正确插入。

MySQL中的Check约束使用指南check约束MySQL
MySQL中的Check约束使用指南 在MySQL中,Check约束是用于限制特定列的取值范围的一种约束。Check约束可以定义为一个布尔表达式,该表达式必须返回true才能插入或更新数据。Check约束可用于表约束和列约束。下面是一些Check约束的示例。表约束:CREATE TABLE employees (id INT, name VARCHAR(30), age INT, ...

mysql非空字段不允许插入空字符串怎么处理?
mysql根本不支持check约束,可以用触发器实现check约束想要的功能,不过当数据量过大时触发器效率不高,要想详细了解请自己百度吧

mysql中什么是CHECK约束啊?
分数 nchar(10) NOT NULL CHECK (分数in(between '0' and '100'))在数据库中,CHECK 约束是指约束表中某一个或者某些列中可接受的数据值或者数据格式。CHECK约束可以应用于一个或者多个列,也可以将多个CHECK 约束应用于一个列。当除去某个表时,对这个表的CHECK 约束也将同时被去除。

mysql中,关于check和default约束
check关键字是会被mysql忽略的,也就是无效 而default并不是约束,只是当该列被写入null值得时候,会以default中指定的值写入

相似回答