2014-10-29 4 views
27

मैं अपने postgresql डेटाबेस की तालिका में टेक्स्ट फ़ील्ड को अपडेट करने का प्रयास कर रहा हूं।टेक्स्ट फ़ील्ड को अपडेट करते समय postgresql में लाइन ब्रेक डालें

UPDATE public.table SET long_text = 'First Line' + CHAR(10) + 'Second line.' WHERE id = 19; 

मेरे इच्छित परिणाम है कि सेल इस तरह दिखेगा है:

 
First Line 
Second line 

ऊपर वाक्य रचना एक त्रुटि देता है।

+2

पोस्टग्रेस्क्ल में स्ट्रिंग कॉन्सटेनेशन ऑपरेटर रास्ते में "||" है। –

उत्तर

37

char(10) के बजाय आप chr(10) चाहते हैं।

इससे सावधान रहें, क्योंकि यह गलत न्यूलाइन हो सकती है। "दाएं" न्यूलाइन उस ग्राहक पर निर्भर करती है जो इसे उपभोग करती है। मैक, विंडोज़ और लिनक्स सभी अलग-अलग न्यूलाइन का उपयोग करते हैं। एक ब्राउज़र <br /> की उम्मीद करेगा।

पोस्टग्रेएसक्यूएल 9.1+ के लिए इस तरह के अपने अपडेट को लिखना सुरक्षित हो सकता है। लेकिन नीचे जुड़े दस्तावेज़ पढ़ें।

UPDATE public.table 
SET long_text = E'First Line\nSecond line.' 
WHERE id = 19; 

'standard_conforming_strings' का डिफ़ॉल्ट मान 9.1+ में 'चालू' है।

show standard_conforming_strings; 
+3

मैंने कंकैट ('टेक्स्ट 1', सीआर (13), 'टेक्स्ट 2') का इस्तेमाल किया और यह काम किया। धन्यवाद! – alexyes

19

एक शाब्दिक न्यू लाइन का उपयोग करें (अगर standard_conforming_strings = on यानी आप हाल ही में एक PostgreSQL पर हैं):

UPDATE public.table 
SET long_text = 'First Line 
Second line.' 
WHERE id = 19; 

या आप एक भागने का उपयोग कर सकते हैं:

UPDATE public.table 
SET long_text = E'First Line\nSecond line.' 
WHERE id = 19; 
0

की मेरी संस्करण में पोस्टग्रेस, \ n लाइन ब्रेक के लिए काम नहीं किया और मैंने इसके बजाय \ r \ n का उपयोग किया:

UPDATE public.table 
SET long_text = E'First Liner\r\nSecond line.' 
WHERE id = 19; 
संबंधित मुद्दे