2013-06-03 5 views
5

में वर्तमान उपयोगकर्ता को डिफ़ॉल्ट मान सेट करना मैं ओरेकल 11 जी में एक नई तालिका बनाने की कोशिश कर रहा हूं जहां कॉलम के लिए डिफ़ॉल्ट मान वर्तमान में लॉग इन उपयोगकर्ता है। मुझे लॉगिंग उद्देश्यों के लिए यह करना है।ओरेकल

CREATE TABLE tracking (
    pk NUMBER(19,0) PRIMARY KEY, 
    description VARCHAR2(50), 
    created_by VARCHAR2(128) DEFAULT CURRENT_USER 
); 

मैं DEFAULT CURRENT_USER अनुभाग तो यह डिफ़ॉल्ट मान के रूप में वर्तमान ओरेकल उपयोगकर्ता ले जाएगा कैसे लिख सकता है? मुझे लगता है मैं एक ट्रिगर इस्तेमाल कर सकते हैं पता है, लेकिन मैं करने के लिए ...

उत्तर

7

आप का उपयोग करने के USERCURRENT_USER नहीं की जरूरत नहीं होनी चाहिए:

CREATE TABLE tracking (
    pk NUMBER(19,0) PRIMARY KEY, 
    description VARCHAR2(50), 
    created_by VARCHAR2(128) DEFAULT USER 
); 

SQL Fiddle

एक उपयोगकर्ता की अधिकतम लंबाई 30 है , इसलिए आप इसे कम कर सकते हैं और मैं आपके विवरण कॉलम का आकार बढ़ा दूंगा जबतक कि आप सुनिश्चित न हों कि सब कुछ 51 वर्णों से कम में आ जाएगा। बजाय

+0

+1 @ बेन - यह सब सच है, और आपने मुझे लगभग 2 सेकंड तक हराया :) –

+0

गॉर्डन की टिप्पणी को प्रतिबिंबित करने के लिए CREATED_AT कॉलम भी एक अच्छा विचार हो सकता है। – Ben

+0

'LOCALTIMESTAMP' को' DEFAULT' मान के रूप में उपयोग किया जा सकता है? असल में, डिफ़ॉल्ट के बजाए ट्रिगर का उपयोग करने का एक कारण किसी को 'बनाया_by' या' create_at' कॉलम को स्पष्ट रूप से सेट करने से रोकना होगा। –

1

कोशिश user:

CREATE TABLE tracking (
    pk NUMBER(19,0) PRIMARY KEY, 
    description VARCHAR2(50), 
    created_by VARCHAR2(128) DEFAULT USER 
); 

वैसे, मैं भी लगता है datetime के लिए created_at एक और उपयोगी डिफ़ॉल्ट स्तंभ है।