Sql_mode'un belirli değerini nasıl görebilirim?


94

MySQL'de bazı sql_modedeğerler vardır:

ANSI,

IGNORE_SPACE,

STRICT_TRANS_TABLES, vb

Tek bir değeri nasıl görebilirim? Kılavuz diyor ki:

Geçerli modu, SELECT @@ sql_mode deyimi yayınlayarak alabilirsiniz.

Ancak hiçbir şey göstermez, bir tabloda @@sql_modesütun adı olarak yalnızca bir boş alan vardır .

Yanıtlar:


144

Sql_mode'u ayarlamadığınız için yalnızca sizin için boş. Bunu ayarlarsanız, bu sorgu size ayrıntıları gösterecektir:

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
Teşekkür ederim, bu işe yarıyor. Ancak bazılarının varsayılan değerleri vardır. Değeri ayarlamadan varsayılanları görmek istedim demek istedim. Yoksa mümkün değil mi?
Yeşil

1
Kombinasyon modlarının tümü burada belgelenmiştir: dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html . Örneğin, burada hangi 7 modun ORACLE kombinasyon modunu içerdiğini görebilirsiniz: dev.mysql.com/doc/refman/5.5/en/…
Ike Walker

1
"Varsayılan SQL modu boş (mod ayarlanmadı)." Sunucu SQL Modları için MySQL Sunucu Yönetimi kılavuz sayfasından alıntılanmıştır . Bunu özel sql_mode'ların hiçbirinin kutunun dışında olmadığı anlamına gelecek şekilde yorumluyorum .
Mister_Tom

@IkeWalker, Varsayılan olarak ("boş" mod), all PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USERve etc'nin ayarlanmamış olmasına eşdeğer olduğunu mu söylüyorsunuz ? Veya bazılarının ayarlandığını ancak varsayılan olarak gösterilmediğini mi söylüyorsunuz?
Pacerier

1
@Pacerier eski doğru. @@ sql_mode boşsa (sizin deyişinizle "boş" modu), sonra hiçbir sql_mode ayarlanır. Varsayılan sql_mode hakkında yorum yapmayacağım çünkü bu MySQL'in hangi sürümünü çalıştırdığınıza bağlı.
Ike Walker

23

Şu anki global sql_mode değeri belirlemek için bunu da deneyebilirsiniz :

SELECT @@GLOBAL.sql_mode;

veya oturum sql_mode değeri:

SELECT @@SESSION.sql_mode;

Ayrıca SQL modunun gerçekten boş olduğu hissine kapıldım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.