0

当我设置一个表时,将“名称”属性声明为 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?

4

2 回答 2

0

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

示例:name字段将存储字符(字符串文字),并且 hance 不能是 INT 类型,并且必须是STRINGSQL 中的类型CHARor VARCHARorNVARCHAR

于 2012-05-13T20:51:53.620 回答
0

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

于 2012-05-13T21:10:43.957 回答