0

テーブルを設定するときに、'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 がデータ型、検証規則、またはこれらの両方を設定するかどうかです。誰かが INT を入力できないため、ある意味で VARCHAR は検証ルールですか?

4

2 に答える 2

0

データ型のみを定義します。サーバー設定に応じて、間違ったデータ型が渡された場合、データの暗黙的な変換が実行されるか(ほとんどの場合)、クエリが拒否されます(例:MySQLのSTRICTモード)。データ検証は通常、アプリケーションまたはトリガーで行われます。

于 2012-05-13T21:10:43.957 に答える
0

これらのフィールドに保存するデータのタイプに依存し、使用するデータ タイプを定義します。

例:nameフィールドは文字 (文字列リテラル) を格納し、ハンスは INT 型にすることはできずSTRING、SQL でCHARorVARCHARまたはNVARCHAR

于 2012-05-13T20:51:53.620 に答える