Wednesday 15 January 2014

sql - FOR UPDATE NOWAIT doesn't work -


दो प्रश्न हैं:

1।

  BEGIN; "उपयोगकर्ता" से "चयन करें" जहां "उपयोगकर्ता" चुनें। "नाम" = 'यूजर -0' अपडेट अपडेट के लिए; चुनें pg_sleep (30); समाप्त;  

2।

  BEGIN; "उपयोगकर्ता" सेट करें "सम्मान" = 2 जहां "उपयोगकर्ता"। "नाम" = 'user0'; समाप्त;  

जैसा कि मैंने अब तक का उपयोग किया है मुझे आशा है कि दूसरी क्वेरी में त्रुटि वापस आ जाएगी लेकिन यह मेरे लिए काम नहीं करता है दूसरी क्वेरी बस लटका और पहले एक के लिए इंतजार कर रहा है। मुझसे क्या छूट गया? मैंने 9.2-9.4 पोस्टग्रेज़ पर कोशिश की।

अब तक के वक्त को प्रभावित करता है। यह अन्य को प्रभावित नहीं करता है बयान जो त्रुटि की रिपोर्ट करने के बजाय प्रतीक्षा करने के लिए चाहते हैं

अपनी दूसरी क्वेरी के लिए तुरंत एक त्रुटि बढ़ाएं अगर वह पंक्तियों को लॉक नहीं कर सकती है, तो आप आपको इसे का उपयोग करने के लिए फिर से लिखना होगा ... अब अपडेट के लिए , फिर अपडेट ... का उपयोग करना होगा। अकेले अद्यतन वक्तव्य में अभी विकल्प नहीं है।

  BEGIN लेनदेन; "उपयोगकर्ता" से "सम्मान" चुनें, जहां "नाम" = 'user0' अपडेट के लिए आता है; "उपयोगकर्ता" सेट करें "सम्मान" = 2 जहां "उपयोगकर्ता"। "नाम" = 'user0'; समाप्त;  

No comments:

Post a Comment