2010-08-16 11 views
11

मेरे पास निम्न कॉलम के साथ एक टेबल है:स्तंभ नाम निर्दिष्ट किए बिना AUTO_INCREMENT कॉलम के साथ डेटाबेस में नई पंक्ति कैसे सम्मिलित करें?

  • id - INT UNSIGNED ऑटोऑक्रिकमेंट
  • name - VARCHAR (20)
  • group - VARCHAR (20)

मुझे पता है कि मैं इस तरह की एक पंक्ति जोड़ सकता हूं:

INSERT INTO table_name (name, group) VALUES ('my name', 'my group') 

मुझे आश्चर्य है कि कॉलम नाम निर्दिष्ट किए बिना पंक्ति जोड़ने का कोई तरीका है, जैसे कोई AUTO_INCREMENT कॉलम नहीं है?

उत्तर

14

कुछ डेटाबेस के लिए, तुम सिर्फ स्पष्ट रूप से एक NULLauto_increment स्तंभ में सम्मिलित कर सकते हैं:

INSERT INTO table_name VALUES (NULL, 'my name', 'my group') 
+0

बढ़िया! बहुत बहुत धन्यवाद !! –

+8

हालांकि, यह एक बेहद खराब अभ्यास है और इसे नहीं किया जाना चाहिए। यदि कॉलम किसी भी तरह से पुन: व्यवस्थित होते हैं, तो आपको कॉलम नामों के साथ हमेशा सम्मिलित विवरण करना चाहिए, आप डेटा को गलत कॉलम में डाल देंगे। यदि कोई अन्य कॉलम जोड़ा जाता है तो सम्मिलन विफल हो जाएगा। मैं इस बात पर जोर नहीं दे सकता कि यह कितना खराब है। थोड़ा आलस्य के कारण आप अपनी डेटा अखंडता को नष्ट कर सकते हैं। और ईमानदारी से जब आप ऑब्जेक्ट ब्राउज़र से कॉलम नाम खींच और ड्रैग कर सकते हैं, तो हम आपके डेटा को जोखिम देने के बारे में बात कर रहे हैं क्योंकि आप किसी कार्य में अतिरिक्त मिनट बिताने के लिए बहुत आलसी थे। – HLGEM

+0

ठीक है, सलाह के लिए धन्यवाद! –

1

बस स्तंभ नाम जोड़ने, हाँ आप के बजाय अशक्त उपयोग कर सकते हैं, लेकिन है एक बहुत बुरा विचार स्तंभ का उपयोग नहीं करने के लिए है कभी भी किसी भी सम्मिलन में नाम।

8

इससे भी बेहतर, न्यूल के बजाय DEFAULT का उपयोग करें। आप डिफ़ॉल्ट मान को स्टोर करना चाहते हैं, न कि एक पूर्ण मान जो डिफ़ॉल्ट मान को ट्रिगर कर सकता है।

लेकिन आप एसक्यूएल के एक टुकड़े के साथ सभी कॉलम बेहतर नाम देंगे, आप सभी इंसर्ट, अपडेट और डिलीट की ज़रूरत बना सकते हैं। बस information_schema जांचें और अपनी आवश्यक क्वेरी बनाएं। हाथ से इसे करने की कोई ज़रूरत नहीं है, एसक्यूएल आपकी मदद कर सकता है।

+0

पोस्टग्रेज़ के लिए यह सहायक था। 'ERROR में एक नल परिणाम का उपयोग करना: कॉलम में शून्य मान" आईडी "शून्य-शून्य बाधा का उल्लंघन करता है" – Meredith

संबंधित मुद्दे