मेरे पास दो प्रकार के सम्मिलन हैं, एक पोस्ट में नई टिप्पणियों के लिए और एक अन्य टिप्पणी के जवाब के लिए है।

टिप्पणी की प्रतिक्रिया है

INSERT INTO event_comments(e_id, thread_id, date_posted, is_root, created_by, body, num_likes)

एक नई टिप्पणी के लिए मैं thread_id के उच्चतम मूल्य का उपयोग करके कैसे सम्मिलित कर सकता हूं?

l

लेकिन एक नई टिप्पणी के लिए मैं डालने के लिए 1 के थ्रेड_आईडी के मान का उपयोग कैसे कर सकता हूं? मैं मान 2 डालूंगा क्योंकि वर्तमान उच्चतम थ्रेड_आईडी मान 1 है

INSERT INTO event_comments(e_id, thread_id, date_posted, is_root, created_by, body, num_likes)
VALUES(
   ..., 2, ..., ..., ..., ..., ...
)
0
WHOATEMYNOODLES 2 पद 2019, 09:20

3 जवाब

सबसे बढ़िया उत्तर

आप एक INSERT INTO ... SELECT का उपयोग कर सकते हैं। उदाहरण के लिए, e_id = 1 के साथ एक इन्सर्ट करने के लिए, आप कोशिश कर सकते हैं:

INSERT INTO event_comments(e_id, thread_id, date_posted, is_root, created_by, body, num_likes)
SELECT e_id, thread_id + 1, date_posted, is_root, created_by, body, num_likes
FROM event_comments
WHERE e_id = 1;

ध्यान दें कि उपरोक्त सम्मिलन अभी भी एक ही कथन है, और इसलिए परमाणु होना चाहिए। अर्थात्, यदि अन्य सूत्र भी पढ़ रहे हैं और सम्मिलित करने का प्रयास कर रहे हैं, तो उन्हें हस्तक्षेप नहीं करना चाहिए।

0
Tim Biegeleisen 2 पद 2019, 09:23

आप ORDER BY का उपयोग करके नवीनतम threadID प्राप्त कर सकते हैं और परिणाम को 1 तक सीमित कर सकते हैं।

INSERT INTO event_comments(e_id, thread_id, date_posted, is_root, created_by, body, num_likes)
SELECT e_id, thread_id + 1, date_posted, is_root, created_by, body, num_likes
FROM event_comments
ORDER BY thread_id DESC LIMIT 1;
0
Ed Bangga 2 पद 2019, 09:26

मैं एक अशक्त thread_id फ़ील्ड बनाउंगा जिसमें माता-पिता की आईडी शामिल है। एक नया थ्रेड एक खाली thread_id के साथ एक टिप्पणी है। यह नेस्टेड धागे के लिए भी अनुमति देता है। यह is_root फ़ील्ड की आवश्यकता को भी हटा देता है। मैं पृष्ठ तालिका में एक विदेशी कुंजी के साथ एक page_id भी जोड़ूंगा (या इसमें पृष्ठ यूआरएल के साथ, यदि आपके पास वह तालिका नहीं है)।

0
JoostS 2 पद 2019, 14:02