सीक्यूएल एक BEGIN बैच के साथ आता है ... बैच स्टेटमेंट लागू करें जो कई आवेषणों को एक साथ जोड़ना संभव बनाता है, ताकि एक डेवलपर ऐसे बैच अनुरोध की स्ट्रिंग बना सके और इसे निष्पादित कर सके। [http://www.datastax.com/dev/blog/client-side-improvements-in-cassandra-2-0]
निम्नलिखित मेरे लिए काम किया:
var statement: PreparedStatement = session.prepare("INSERT INTO people (name,age) VALUES (?,?)")
var boundStatement = new BoundStatement(statement)
val batchStmt = new BatchStatement()
batchStmt.add(boundStatement.bind("User A", "10"))
batchStmt.add(boundStatement.bind("User B", "12"))
session.execute(batchStmt)
:
PreparedStatement ps = session.prepare(
"BEGIN BATCH" +
"INSERT INTO messages (user_id, msg_id, title, body) VALUES (?, ?, ?, ?);" +
"INSERT INTO messages (user_id, msg_id, title, body) VALUES (?, ?, ?, ?);" +
"INSERT INTO messages (user_id, msg_id, title, body) VALUES (?, ?, ?, ?);" +
"APPLY BATCH");
session.execute(ps.bind(uid, mid1, title1, body1, uid, mid2, title2, body2, uid, mid3, title3, body3));
आप, आप निम्न संरचना (स्काला) का उपयोग कर सकते क्या बयान आप पर अमल करना चाहते हैं पहले से पता नहीं है, तो
नोट: बैचस्टेटमेंट 65536 कथन तक रख सकता है। यह कठिन तरीका सीख लिया। :-)
कौन सा ड्राइवर आप उपयोग कर रहे: नीचे का उपयोग करता है और बैच के दुरुपयोग पर अच्छा लेख के एक जोड़े कर रहे हैं? क्या आप सीक्यूएल का उपयोग कर रहे हैं? कौन सा कैसंद्रा संस्करण? – Richard
कैसंड्रा संस्करण is1.2.x है और मैं हेक्टर एपिस का उपयोग कर रहा हूं। – ajjain