2011-07-15 11 views
7

मेरे पास अनुक्रम के साथ एक ऑरैकल तालिका है और एक कॉलम को स्वत: संयोजित करने के लिए एक ट्रिगर है। अब मैं एक सम्मिलित करना चाहता हूं। आम तौर पर मुझे लिखना चाहिए:ओरेकल: स्तंभ विनिर्देशों के बिना डालें

INSERT INTO table (column1, column2,...) VALUES (value1, value2) 

लेकिन मैं सिर्फ एक डिफ़ॉल्ट मान के साथ एक रिकॉर्ड डालना चाहता हूं। ओरेकल में यह कैसे करें?

`Mysql`: INSERT INTO table() VALUES() 

`Mssql`: INSERT INTO table default VALUES 

`Oracle:` INSERT INTO table (column1, column2,...) VALUES (default, default,...) 

क्या यह एकमात्र तरीका है? मुझे सभी कॉलम सूचीबद्ध करना है?

+0

क्या यह केवल एक सूची सूचीबद्ध है? –

उत्तर

7
INSERT INTO table (column1) VALUES (default); 

बाकी को डिफॉल्ट किया जाएगा!

4

क्या यह एकमात्र तरीका है? मुझे सभी कॉलम सूचीबद्ध करना है?

हां। और यह हमेशा एक अच्छा अभ्यास है जो INSERT कथन में सभी कॉलम निर्दिष्ट करता है जिसके लिए आप मूल्यों की आपूर्ति करना चाहते हैं।

+0

नहीं, आपके पास * सभी * कॉलम सूचीबद्ध करने के लिए * नहीं है। –

+1

ठीक है, आप जो भी पॉप्युलेट करना चाहते हैं ... –

3

ओरेकल में आपको कॉलम निर्दिष्ट करने की आवश्यकता नहीं है लेकिन ऐसा नहीं करने से आपको बग को शुरू करने के लिए खुलेगा और जब आपकी तालिका परिभाषा बदलती है।

आप के साथ सम्मिलित हो सकते हैं:

टी मूल्यों (मान 1, मान 2, value3) में डालें;

इसमें यह माना जाता तालिका टी तीन कॉलम

यह कहीं बेहतर और समर्थन-साथ डालने के लिए है:

सम्मिलित टी (स्तम्भ 1, कॉलम 2, स्तम्भ 3) मूल्यों (मान 1, मान 2, value3) में;

मैं पीएल/एसक्यूएल (यदि आप इसकी मदद कर सकते हैं) का उपयोग नहीं करेंगे क्योंकि आप पीएल/एसक्यूएल से एसक्यूएल में संदर्भ स्विचिंग शुरू करते हैं और फिर पीएल/एसक्यूएल पर फिर से स्विच करते हैं।

3

मैं पहली बार पढ़ने पर इस भाग याद किया:

मैं एक दृश्य और एक ट्रिगर के साथ एक दैवज्ञ तालिका एक स्तंभ AutoIncrement किया है।

तो मुझे लगता है कि अनुक्रम का उपयोग करके पीके कॉलम पर पॉप्युलेट किया गया है, और अन्य सभी के पास डिफ़ॉल्ट मान हैं। यह देखते हुए कि, मैं इस करना होगा:

INSERT INTO table (pk_column) VALUES (NULL); 

ट्रिगर शून्य मूल्य को पार कर जाएगी (और अगर यह किसी कारण के लिए नहीं है, सम्मिलित असफल हो जायेगी); और अन्य कॉलम डिफ़ॉल्ट का उपयोग करके पॉप्युलेट किए जाएंगे।

+0

आप पीके में 'डिफ़ॉल्ट शून्य' जोड़ सकते हैं, और तब सम्मिलन तालिका (pk_column) मानों (डिफ़ॉल्ट) में डाला जाएगा। –

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