5

整数フィールドに含めることができる数値の数を制限しようとしています。たとえば、フィールドに5以下の長さの数値を含める必要があるため、99999が最も有効なエントリになります。

これはMySQLで行うことができますか?ドキュメントを確認しましたが、答えが見つかりませんでした。

4

3 に答える 3

3

残念ながら、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
//
于 2012-05-08T06:42:52.563 に答える
1

データベースに変更が加えられるたびに、これを強制するトリガーを追加できます。トリガーは、変更が適用される前に実行され、「有効な」エントリで更新されていることを確認します。エントリが無効な場合、更新を拒否できます。

于 2012-05-08T06:36:23.920 に答える
0

これは、DBレベルでは実行できません。ストアドプロシージャを使用するか、そのロジックをアプリケーションに配置する必要があります。

http://dev.mysql.com/doc/refman/5.5/en/integer-types.html

ミディアム整数はあなたが得ることができる最も近いです。

また、ある時点で次のようなものが表示される可能性があります。

CREATE TABLE blah ( col INT (5) );

しかし、これはあなたが思っていることをしません。これは、実際にはフィールドの長さを5桁に制限するものではありません。これは、列にゼロフィルが設定されている場合、5桁に0を埋める必要があることを意味します。

于 2012-05-08T06:35:53.847 に答える