2012-06-07 35 views
0

将值插入到表中时是否有避免将无效数据存入列的方法?将数据插入表时SQL可接受的值范围

前表 - 项目

Itno - pk 
Itdesc 
salesprice - Acceptable values should > 150 and < 10500 

TY

+0

在表中的这个字段上创建一个约束。你正在使用哪个db。 –

+0

不同的数据库都有约束系统,但通常,在您甚至考虑写入数据库之前很久,您应该已经清理了输入,通知了用户错误,进行了计算以产生写入或更改程序状态的值,等等。 所以,如果你只是问你的数据库去做,你做错了。 –

+1

什么是数据库系统,哪个版本? ** SQL **只是*结构化查询语言* - 许多数据库系统使用的语言,而不是数据库产品......像这样的东西通常是特定于供应商的 - 所以我们真的需要知道您的数据库系统是什么,重新使用.... –

回答

1

以下语法适用到MySQL/SQL服务器/甲骨文/ MS访问。

CREATE TABLE mytable 
(
Itno int NOT NULL, 
Itdesc varchar(255) NOT NULL, 
salesprice int, 
CONSTRAINT chk_salesprice CHECK (salesprice >150 AND salesprice < 10500) 
) 

您还可以使用用户定义的函数与检查约束验证动态值。

UDF with Check Constraint

Refer to see more examples

+0

@marc_s,谢谢你提示我错字的错误。 –

0

除了@ Romil的回答,最RDBMS的支持触发可之前或之后提交验证数据。

通常情况下,CHECK约束是首选,但有时(特别是在数据必须根据可变标准进行评估的情况下),触发器是唯一的方法。