1

コードでは、テーブルを削除してからテーブルを作成し、1 つのサーバーで複数のデータベースで同じことを行います。すべて正常に動作します。そして、SQL " SHOW TABLES "を使用してテーブルにクエリを実行すると、この sql が例外をスローする場合があり、正常Fatal error encountered during command executionに動作する場合もあります。そして、これはCOMMAND TIMEOUTによって発生しないと確信しています。他の理由のはずです。

テーブルを削除してテーブルを作成するSQLは次のとおりです。

DROP TABLE IF EXISTS `a`;
CREATE TABLE IF NOT EXISTS `a`
SELECT 
  id,
  IF (mapping.name IS NULL, ne.autoname, mapping.name) AS autoname FROM b ne
LEFT JOIN test.a_mapping mapping ON ne.autoName = mapping.autoname;
ALTER TABLE `a` ADD INDEX `id_idx` (`id`); 
DELETE FROM `a` WHERE id = 1000000; 
INSERT INTO `a`(id, autoname) VALUES(1000000, @count);

ショーテーブルのコードは次のとおりです。

  MySqlDataReader dataReader = null;
    try{            
        MySqlCommand cmd = new MySqlCommand(MySqlUtils.SQL_GET_TABLES, connection);
        cmd.CommandTimeout = BaseOptimonConfig.Instance.CommandTimeout;
        dataReader = MySqlUtils.ExecuteReader(cmd); // just add try catch in this method.
        while (dataReader.Read())
        {
            if (MySqlUtils.GetSqlString(dataReader, 0).ToLower().Equals(tableName))
            {
                return true;
            }
        }
    }
    finally
    {
        MySqlUtils.CloseSqlReader(dataReader);
    }
4

0 に答える 0