sql - mysql warnings -
मेरे पास निम्न तालिका है:
बनाएँ तालिका 'ईवेंट' (`evt_id` int (11) नहीं NULL AUTO_INCREMENT, `evt_name` varchar (50) नहीं NULL,` evt_description` varchar (100) डिफ़ॉल्ट शून्य, `evt_startdate` तारीख नहीं NULL,` evt_enddate` तारीख डिफ़ॉल्ट शून्य, `evt_starttime` समय डिफ़ॉल्ट शून्य,` evt_endtime `समय डिफ़ॉल्ट शून्य,` evt_amtpersons` पूर्णांक (11) डिफ़ॉल्ट शून्य, `sts_id` पूर्णांक (11) नहीं NULL,` adr_id` पूर्णांक (11) डिफ़ॉल्ट शून्य, `evt_amtPersonsSubs` पूर्णांक (11) डिफ़ॉल्ट शून्य,` evt_photo` varchar ( 50) डिफ़ॉल्ट शून्य, `सिस-mut-dt` टाइमस्टैम्प शून्य डिफ़ॉल्ट शून्य,` सिस-mut-user` varchar (20) डिफ़ॉल्ट शून्य, `सिस-mut-id` पूर्णांक (11) नहीं NULL डिफ़ॉल्ट '0', प्राथमिक कुंजी ( `evt_id`), कुंजी` sts_id` ( `sts_id`), कुंजी` adr_id` ( `adr_id`), बाधा` विदेशी कुँजी ( `sts_id`) दें संदर्भ` statusses` ( `sts_id`) हटाते हैं तो पर sts_id` अपडेट पर कोई कार्रवाई नहीं क्रिया) इंजन = InnoDB AUTO_INCREMENT = 10 DEFAULT CHARSET = latin1 अब मुझे मिल गया है दोनों समस्याओं:
यहां मेरी क्वेरी है:
`events` में डालने (` evt_name`, `evt_description`,` evt_startdate`, `evt_enddate`,` evt_starttime` , `evt_endtime`,` evt_amtpersons`, `sts_id`,` adr_id`, `evt_amtPersonsSubs`,` evt_photo`, `सिस-mut-user`,` सिस-mut-id`) मूल्यों ( 'asf', 'asf' , '2009-04-02', '2009-04-22', '00: 00: 00 ', '00: 00: 00', '3', '1', '', '', '', 'Test', '1') -
जब मैं अपने php कार्यक्रमों के माध्यम से इस क्वेरी को निष्पादित करता हूं तो मुझे कोई त्रुटि नहीं मिलती। लेकिन जब मैं शेल में क्वेरी को सीधे mysql डेटाबेस पर निष्पादित करता हूं तो मुझे दो चेतावनियां मिलती हैं I मुझे चेतावनी देने पर मुझे सचेत करने के लिए PHP कैसे मिल सकता है, क्योंकि अगर चेतावनियाँ हैं तो mysql सम्मिलित नहीं करता है।
-
चेतावनियों के बारे में:
| चेतावनी | 1366 | गलत पूर्णांक मान: '' कॉलम के लिए 'adr_id' पंक्ति 1 पर | चेतावनी | 1366 | गलत पूर्णांक मान: '' स्तंभ के लिए 'evt_amtPersonsSubs' एक टी पंक्ति 1
मैं इन चेतावनियों से कैसे छुटकारा पा सकता हूं। कुछ बदलाव करने की कोशिश की लेकिन यह अभी तक काम नहीं कर पाया।
आप एक खाली स्ट्रिंग । आपको '' को हटा देना चाहिए और उस क्षेत्र में एक संख्या डालनी चाहिए
जैसा आपने कहा था, जब आप सम्मिलित करते हैं तो कॉलम में निर्दिष्ट मान नहीं होता है। तथ्य तालिका स्तंभ निर्माण पर उस स्तंभ के लिए "डिफॉल्ट नल" द्वारा इंगित किया गया है। हालांकि, यह तथ्य है कि यदि आप INSERT करते समय कॉलम की सूची में करना नहीं स्तंभ नाम निर्दिष्ट करें (और इसलिए आप इसी मान को निर्दिष्ट नहीं करेंगे) तो ट्यूपल को वैसे भी डाला जा सकता है, और उस कॉलम मूल्य के लिए आपको डिफ़ॉल्ट रूप से स्वचालित रूप से एक नल मिलेगा।
हालांकि, आपकी क्वेरी में आप निर्दिष्ट करते हैं कि आप उस कॉलम मूल्य को सम्मिलित करने जा रहे हैं, और स्तंभ मान आप कहते हैं कि '' (एक खाली स्ट्रिंग) है। यह निश्चित रूप से मान्य नहीं है, क्योंकि वह कॉलम पूर्णांक स्वीकार करता है (या नल, क्योंकि आपने कॉलम को नल नहीं घोषित किया है), और रिक्त स्ट्रिंग एक खाली स्ट्रिंग है, पूर्णांक नहीं है।
SQL सर्वर उदार है और रिक्त स्ट्रिंग को वैसे भी स्वीकार करता है (शायद यह शून्य पर डालेगा) लेकिन आपको एक चेतावनी दिखाती है यदि आप सर्वर के लिए एक सख्त मोड सेट करते हैं (कुछ ऐसा जो मुझे दृढ़ता से आपको सूचित करता है), आपको एक त्रुटि मिल जाएगी और सम्मिलित हो जाएगा।
कृपया ध्यान दें कि यदि आप सख्त मोड सेट करने के अपने सुझाव का पालन करते हैं, यह सर्वर चौड़ा है, जिसमें आपके सभी डेटाबेस और आपके सभी तालिकाओं को शामिल किया गया है (कम से कम एक साल पहले रिलीज़ हुई mysql के साथ) यदि आप बहुत सफ़लता वाले सॉफ़्टवेयर को क्षमा करने वाले सर्वर की आवश्यकता है, तो आप इसका उपयोग नहीं कर सकते।
Comments
Post a Comment