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

ブラックホールエンジンのクリエイティブな用途

    トリガーを使用して1つを見つけました:

    トランザクションで発生する必要のある複雑な一連の挿入または更新がある場合は、アプリケーションコードでこれらを実行できます。

    1つの「大きな」blackholeを作成できます すべての値を保持するのに十分な行を持つテーブル。

    そして、次のようなトリガーを作成します:

    DELIMITER $$
    
    CREATE TRIGGER ai_bh_table_each AFTER INSERT ON bh_table FOR EACH ROW
    BEGIN
      DECLARE lastid1 integer;
    
      INSERT INTO table1 VALUES (null, new.field1, new.field2);
      SELECT LAST_INSERT_ID() INTO lastid1;
      INSERT INTO table2 VALUES (null, new.field3, lastid1);
      ....  
    END$$
    
    DELIMITER ;
    

    エラーチェックコードを含めると、MyISAMなどのエラーチェックコードをサポートしていないエンジンでトランザクションをシミュレートすることもできます。



    1. SQLServerでのIFステートメントのしくみ

    2. A1をA2としてCREATETABLELIKE A1

    3. mysqlデータベースで出現するすべての文字列を検索します

    4. Oracle:blobを含むテーブルを.sqlファイルにエクスポートして、再度インポートできるようにします。