Несоответствия с mySQL запросом на удаление - PullRequest
0 голосов
/ 07 апреля 2020

Я обнаружил некоторые несоответствия относительно результатов запроса SQL.

Вот запрос, который я использую в качестве подготовленного оператора.

delete ROLE_USER_MAP 
from ROLE_USER_MAP inner join ROLE_MANAGER on ROLE_USER_MAP.R_ID=ROLE_MANAGER.R_ID 
where ROLE_USER_MAP.U_ID= ? and ROLE_MANAGER.M_ID= ?

Вот как я вызываю подготовленный оператор в моем приложении Java.

public void deleteRoles(String mID, String uID) throws OperationFailedException
    {
        Connection conn = null;
        try
        {
            conn = this.getConnection();
            this.deleteRoles(mID, uID, conn);
        }
        catch (Exception e)
        {
            AdminLogger.error(this.getClass(), e);
            throw new OperationFailedException("Failed to remove roles for user.");
        }
        finally
        {
            try
            {
                conn.close();
            }
            catch (Exception e)
            {
            }
        }
    }

    private void deleteRoles(String mID, String uID, Connection conn) throws SQLException
    {
        PreparedStatement stmt = null;
        try
        {
            stmt = *retrieving ps*
            stmt.setString(1, uID);
            stmt.setString(2, mID);

            int i = stmt.executeUpdate();    // returns 1 here

            if (i < 1)
            {
                throw new SQLException("Failed to remove roles for user.");
            }
        } finally
        {
            stmt.close();
        }
    }

Он отлично работает локально и в SSMS, при этом все строки, соответствующие предложению where, удаляются, но когда я пытаюсь развернуть его на моем размещенном сервере, удаляется только первая строка в таблице.

Может кто-нибудь помочь мне с этим?

Заранее спасибо.

...