VARCHAR或INT是验证规则吗?

时间:2012-05-13 20:47:55

标签: sql database

当我设置表时,将'name'属性声明为varchar使其成为验证规则或者这只是定义数据类型吗?

CREATE TABLE `categories` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(200) NOT NULL,
  `user_id` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
);

我感到困惑的是VARCHAR是否设置了数据类型,验证规则或这两者。所以在某种程度上,VARCHAR是一个验证规则,因为有人无法输入INT?

2 个答案:

答案 0 :(得分:0)

这取决于您将存储到这些字段的数据类型,并且定义了您应该使用的数据类型。

示例:name字段将存储字符(字符串文字),并且不能是INT类型,必须是STRING类型,其在SQL中为CHAR或{{1 }或VARCHAR

答案 1 :(得分:0)

它仅定义数据类型。如果传递了错误的数据类型,则根据服务器设置,执行数据的implisit转换(大多数情况)或拒绝查询(例如:MySQL的STRICT模式)。数据验证通常在应用程序或触发器中完成。