整数フィールドに含めることができる数値の数を制限しようとしています。たとえば、フィールドに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
ミディアム整数はあなたが得ることができる最も近いです。
また、ある時点で次のようなものが表示される可能性があります。
CREATE TABLE blah ( col INT (5) );
しかし、これはあなたが思っていることをしません。これは、実際にはフィールドの長さを5桁に制限するものではありません。これは、列にゼロフィルが設定されている場合、5桁に0を埋める必要があることを意味します。