Create test table:
`CREATE TABLE test (`id` Int32) ENGINE = MySQL('localhost:3306', '', 'test', 'user', 'pass')`

Attempt insert:
`INSERT INTO test VALUES(1)`

CH sending SQL:
`INSERT INTO ``.`test` (`id`) VALUES (1)`

"``." - sending empty database name in generated SQL

However SELECT statement working with empty database name correctrly

P.S.
This can be useful when working with databases such as sphinx
const StorageMetadataPtr & metadata_snapshot,
    SelectQueryInfo & query_info_,
    ContextPtr context_,
    QueryProcessingStage::Enum ,
    size_t ,
    unsigned)
{
    metadata_snapshot->check(column_names_, getVirtuals(), getStorageID());
    String query = transformQueryForExternalDatabase(
        query_info_,
        metadata_snapshot->getColumns().getOrdinary(),
        IdentifierQuotingStyle::BackticksMySQL,
        remote_database_name,
        remote_table_name,
        context_);
    Block sample_block;
    for (const String & column_name : column_names_)
    {
        auto column_data = metadata_snapshot->getColumns().getPhysical(column_name);
        WhichDataType which(column_data.type);
        
        if (which.isEnum())
            column_data.type = std::make_shared<DataTypeString>();
        sample_block.insert({ column_data.type, column_data.name });
    }
    StreamSettings mysql_input_stream_settings(context_->getSettingsRef(), true, false);
    return Pipe(std::make_shared<SourceFromInputStream>(
            std::make_shared<MySQLWithFailoverBlockInputStream>(pool, query, sample_block, mysql_input_stream_settings)));
}
class StorageMySQLBlockOutputStream : public IBlockOutputStream