मैं sql_mode का विशिष्ट मूल्य कैसे देख सकता हूं?


93

sql_modeMySQL में कुछ मान हैं :

ANSI,

IGNORE_SPACE,

STRICT_TRANS_TABLES, आदि

मैं एक विशेष मूल्य कैसे देख सकता हूं? मैनुअल कहता है:

आप SELECT @@ sql_mode स्टेटमेंट जारी करके वर्तमान मोड को पुनः प्राप्त कर सकते हैं।

लेकिन यह सिर्फ @@sql_modeएक स्तंभ नाम के साथ तालिका में केवल एक खाली क्षेत्र, कुछ भी नहीं दिखाता है ।

जवाबों:


144

यह केवल आपके लिए रिक्त है क्योंकि आपने sql_mode सेट नहीं किया है। यदि आप इसे सेट करते हैं, तो यह क्वेरी आपको विवरण दिखाएगी:

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
धन्यवाद, यह काम करता है। लेकिन उनमें से कुछ के अपने डिफ़ॉल्ट मूल्य हैं। मेरा मतलब था कि मैं मूल्य निर्धारित किए बिना चूक को देखना चाहता था। या यह संभव नहीं है?
ग्रीन

1
संयोजन मोड यहां सभी प्रलेखित हैं: dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html । उदाहरण के लिए, यहां आप देख सकते हैं कि कौन से 7 मोड में ORACLE संयोजन मोड शामिल है: dev.mysql.com/doc/refman/5.5/en/…
Ike वाकर

1
"डिफ़ॉल्ट SQL मोड खाली है (कोई मोड सेट नहीं है)।" सर्वर SQL मोड के लिए MySQL सर्वर एडमिनिस्ट्रेशन मैनुअल पेज से उद्धृत । मैं इसका मतलब यह है कि विशेष sql_mode में से कोई भी बॉक्स से बाहर सेट नहीं है।
Mister_Tom

@ इकेवल्कर, क्या आपके कहने का मतलब यह है कि डिफ़ॉल्ट रूप से ("रिक्त" मोड), यह बराबर है, हालांकि सभी PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USERऔर आदि सेट नहीं हैं? या क्या आपका मतलब है कि उनमें से कुछ सेट हैं लेकिन बस डिफ़ॉल्ट रूप से नहीं दिखाए गए हैं?
पचेरियर

1
@Pacerier पूर्व सही है। यदि @@ sql_mode खाली है ("रिक्त" मोड जैसा कि आप इसे कहते हैं), तो कोई sql_mode सेट नहीं है। मैं डिफ़ॉल्ट sql_mode पर टिप्पणी नहीं करूंगा क्योंकि यह निर्भर करता है कि MySQL का कौन सा संस्करण आप चला रहे हैं।
वाकर

23

वर्तमान वैश्विक sql_mode मूल्य निर्धारित करने के लिए आप यह भी कोशिश कर सकते हैं :

SELECT @@GLOBAL.sql_mode;

या सत्र sql_mode मूल्य:

SELECT @@SESSION.sql_mode;

मुझे यह भी महसूस हुआ कि SQL मोड वास्तव में खाली था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.