整数フィールドに含めることができる数値の数を制限しようとしています。たとえば、フィールドに5より長い番号を含める場合は、99999が最も有効なエントリになります。整数データ型フィールドの長さを制限する
これはMySQLで可能ですか?私はドキュメントを見てきましたが、私の答えは見つかりませんでした。
整数フィールドに含めることができる数値の数を制限しようとしています。たとえば、フィールドに5より長い番号を含める場合は、99999が最も有効なエントリになります。整数データ型フィールドの長さを制限する
これはMySQLで可能ですか?私はドキュメントを見てきましたが、私の答えは見つかりませんでした。
残念ながら、CHECK
制約タイプもユーザ定義タイプもMySQLでは実装されていません。おそらくこれは将来のバージョンで変更されるでしょう。
それがあなたのために進むべき道であるならば、あなたは入力を修正するためにトリガーを使用することができますまで:
delimiter //
CREATE TRIGGER trigger_check BEFORE INSERT ON your_table
FOR EACH ROW
BEGIN
IF NEW.NUM > 99999 THEN
SET NEW.NUM = 0;
END IF;
END
//
これはDBレベルでは実行できません。ストアドプロシージャを使用するか、そのロジックをアプリケーションに組み込む必要があります。
http://dev.mysql.com/doc/refman/5.5/en/integer-types.html
メディアintはあなたが得ることができる最も近いです。
また、あなたはおそらくいくつかの点で、このようなものが表示されます:これは、あなたががどう思うか行いません
CREATE TABLE blah (col INT (5));
。これは実際にはフィールドの長さを5か所に制限しません。これは、zerofillが列に設定されている場合、5桁に0を埋め込む必要があることを示します。
トリガーを追加して、データベースに変更が加えられるたびにこれを強制できます。変更が適用される前にトリガが実行され、「有効な」エントリで更新されていることを確認します。エントリが無効な場合は、更新を拒否できます。
完全を期すために、あなたもその整数のテーブルへの外部キーを使用することができます99999で終わります。 –