2012-05-14 21 views
42

Hay algunas sql_mode valores en MySQL:¿Cómo puedo ver el valor específico de sql_mode?

ANSI,

IGNORE_SPACE,

STRICT_TRANS_TABLES, etc

Como puedo ver el valor particular? El manual dice:

Puede recuperar el modo actual emitiendo una instrucción SELECT @@ sql_mode .

Pero simplemente no muestra nada, solo un campo en blanco en una tabla con @@sql_mode como nombre de columna.

Respuesta

64

Solo está en blanco porque no ha configurado sql_mode. Si se establece, entonces esa consulta le mostrará los detalles:

mysql> SELECT @@sql_mode; 
+------------+ 
| @@sql_mode | 
+------------+ 
|   | 
+------------+ 
1 row in set (0.00 sec) 

mysql> set sql_mode=ORACLE; 
Query OK, 0 rows affected (0.00 sec) 

mysql> SELECT @@sql_mode; 
+----------------------------------------------------------------------------------------------------------------------+ 
| @@sql_mode                           | 
+----------------------------------------------------------------------------------------------------------------------+ 
| PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER | 
+----------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 
+2

Gracias, esto funciona. Pero algunos de ellos tienen sus valores predeterminados. Quería decir que quería ver los valores predeterminados sin establecer el valor. O no es posible? – Green

+1

Los modos de combinación están todos documentados aquí: http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html. Por ejemplo, aquí puede ver qué 7 modos comprenden el modo de combinación ORACLE: http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html#sqlmode_oracle –

+1

"El modo SQL predeterminado es vacío (sin modos establecidos). " Citado de la página del manual de administración del servidor MySQL para [Modos SQL del servidor] (http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html). Lo interpreto como que significa que _nueve_ de los modos sql_mode especiales están establecidos fuera de la caja. –

2

También puede probar esto para determinar la corriente valor globalsql_mode:

SELECT @@GLOBAL.sql_mode; 

o sesiónsql_mode valor:

SELECT @@SESSION.sql_mode; 

también he tenido la sensación de que El modo SQL estaba vacío.

Cuestiones relacionadas