sql >> データベース >  >> RDS >> Mysql

MySQLテーブルの定数列値

    したがって、ここでは、MYSQL TRIGGERを回避する方法を見つけることができます。 。

    サンプルテーブル:

    DROP TABLE IF EXISTS `constantvaluetable`;
    CREATE TABLE `constantvaluetable` (
      `ID` int(11) NOT NULL AUTO_INCREMENT,
      `constValue` int(11) NOT NULL,
      PRIMARY KEY (`ID`)
    ) ENGINE=InnoDB;
    

    トリガー:

    DROP TRIGGER IF EXISTS trigger_const_check;
    delimiter //
    CREATE TRIGGER trigger_const_check BEFORE INSERT ON constantvaluetable 
        FOR EACH ROW 
      BEGIN 
            IF NEW.constValue <> 71 THEN 
            SIGNAL SQLSTATE '45000' SET message_text ='Only allowed value is 71';
            END IF; 
      END //
    delimiter ;
    

    テスト:

    INSERT INTO constantvaluetable(constValue) VALUES(71);
    
    INSERT INTO constantvaluetable(constValue) VALUES(66);
    

    結果:

    最初の挿入ステートメントは成功します。

    2番目の挿入ステートメントは失敗します。そして、次のエラーメッセージが表示されます:

    注: 一定を想定 値は71です 。



    1. SQL Server 2005でテーブル内の複数の列の合計を見つける方法は?

    2. MSSQLで年と週の番号から日付を作成します

    3. クラウドサイトでのデータベースの作成

    4. SQL Server:複数の行を1つの行に結合