当我设置表时,将'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?
答案 0 :(得分:0)
这取决于您将存储到这些字段的数据类型,并且定义了您应该使用的数据类型。
示例:name
字段将存储字符(字符串文字),并且不能是INT类型,必须是STRING
类型,其在SQL中为CHAR
或{{1 }或VARCHAR
答案 1 :(得分:0)
它仅定义数据类型。如果传递了错误的数据类型,则根据服务器设置,执行数据的implisit转换(大多数情况)或拒绝查询(例如:MySQL的STRICT模式)。数据验证通常在应用程序或触发器中完成。