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

MySQLトリガーはCHECK制約をシミュレートできますか?

    データを更新するとき:

    delimiter $$
    create trigger chk_stats1 before update on stats 
      for each row 
       begin  
        if  new.month>12 then
            SIGNAL SQLSTATE '45000'   
            SET MESSAGE_TEXT = 'Cannot add or update row: only';
          end if; 
          end; 
          $$
    

    データを挿入するとき:

       delimiter $$
        create trigger chk_stats before insert on stats 
          for each row 
           begin  
          if  new.month>12 then
           SIGNAL SQLSTATE '45000'   
           SET MESSAGE_TEXT = 'Cannot add or update row: only';
           end if; 
        end; 
        $$
    

    これらのトリガーはチェック制約として機能し、挿入または更新の前に機能し、月>12でエラーが発生した場合は月をチェックします。



    1. HAS_DBACCESS()–ユーザーがSQLServerのデータベースにアクセスできるかどうかを検出します

    2. PostgreSQLで先行ゼロを追加する2つの方法

    3. Unpivot Stepを使用して、クロス集計テーブルから表形式のテーブルを作成します

    4. SQL Serverで参照エンティティを検索する:sys.dm_sql_referenced_entities