You can tell mysqld to run in ANSI mode with
the --ansi
startup option.
Running the server in ANSI mode is the same as starting it with
the following options:
--transaction-isolation=SERIALIZABLE --sql-mode=ANSI
You can achieve the same effect at runtime by executing these two statements:
SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET GLOBAL sql_mode = 'ANSI';
You can see that setting the
sql_mode
system variable to
'ANSI'
enables all SQL mode options that are
relevant for ANSI mode as follows:
mysql>SET GLOBAL sql_mode='ANSI';
mysql>SELECT @@global.sql_mode;
-> 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI'
Running the server in ANSI mode with
--ansi
is not quite the same as
setting the SQL mode to 'ANSI'
. The
--ansi
option affects the SQL
mode and also sets the transaction isolation level. Setting the
SQL mode to 'ANSI'
has no effect on the
isolation level.
See Section 5.1.2, “Server Command Options”, and Section 1.8.2, “Selecting SQL Modes”.