MaxAffectedRowsAllowedUpdate

This check triggers when the number of rows a SQL statement updates exceeds the value of MaxAffectedRowsAllowed. The SQL statement is executed against the database and then rolled back.

About MaxAffectedRowsAllowedUpdate
Liquibase version required 4.28.0+
Scope (--checks-scope) changelog
Default status enabled
Default severity (exit code) 0 ("INFO")
Customizable settings Yes (dynamic)

Uses

Use this check to prevent statements from being inserted into your database if more than a specified number of rows are affected by that statement.

Known limitation

It is important to know that only UPDATEINSERT,and DELETE SQL statements will execute when this check triggers and the results are counted to determine if the maxAffectedRowsAllowedInsert triggers or not. If SQL statements exist that are not UPDATEINSERT,and DELETE, they will not be executed, resulting in unexpected conditions for the check to evaluate. This can lead to false negative and false positive results. It is best to disable any changesets that include multiple SQL statements or are not UPDATEINSERT,and DELETE when running the MaxAffectedRowsAllowedInsert policy check.

Use MaxAffectedRowsAllowedUpdate

Prerequisites

  1. Ensure that you have correctly specified your Liquibase Pro license key.
  2. Ensure that the --checks-scope parameter includes the scope of this check.

For example:

--license-key=<string>
--checks-scope=<string>
globalArgs: { license-key: "<string>" }
cmdArgs: { checks-scope: "<string>" }
liquibase.licenseKey: <string>
liquibase.command.checksScope: <string>
liquibase.licenseKey: <string>
liquibase.command.checks.run.checksScope: <string>
JAVA_OPTS=-Dliquibase.licenseKey=<string> -Dliquibase.command.checksScope=<string>
JAVA_OPTS=-Dliquibase.licenseKey=<string> -Dliquibase.command.checks.run.checksScope=<string>
LIQUIBASE_LICENSE_KEY=<string>
LIQUIBASE_COMMAND_CHECKS_SCOPE=<string>
LIQUIBASE_LICENSE_KEY=<string>
LIQUIBASE_COMMAND_CHECKS_RUN_CHECKS_SCOPE=<string>

Enable

This check is enabled by default. To verify that it is currently enabled, run the show command:

liquibase checks show --check-name=<string>

Customize

This check is dynamic, meaning you can customize its settings. See the table on this page for more information.

  1. If you want to customize any default values of this check, run the customize command:
  2. liquibase checks customize --check-name=<string>
  3. When finished, verify that your configuration is correct by running the show command:
  4. liquibase checks show --check-name=<string>

Run

To run the check, use the run command:

liquibase checks run --check-name=<string>
stages:
  Default:
    actions:
      - type: liquibase
        command: checks run
        cmdArgs: {check-name: <string>}

And then run the flow command on your flow file:

liquibase flow