【发布时间】:2017-12-15 23:23:18
【问题描述】:
PreparedStatement preparedStatement = session.prepare("INSERT INTO table_name( column1) VALUES(?)");
BatchStatement batch = new BatchStatement();
batch.add(preparedStatement.bind(value1));
batch.add(preparedStatement.bind(value2));
session.execute(batch);
现在我想知道在数据库中插入了多少行。
batch.size();
将只返回批量大小,而不是插入的记录数。
【问题讨论】:
-
不同分区插入时不建议使用批处理。
-
是的,你是对的@Alex Ott,但问题是我想知道插入了多少条记录。你有答案吗?
-
默认
BatchStatement被记录,所以如果失败,那么应该重试,否则你会得到异常 -
在我的情况下,我有一个唯一的键约束,假设 (some_id, created_date) 现在如果我尝试使用以下批次添加 (1,12345) (2, 12345) where (1, 12345 ) 它已经存储了,只有 (2,12345) 将被添加,所以我想知道插入了多少行。所以目前它只添加任何批次的不重复条目,所以我想知道哪些是我的批次的唯一条目。
-
Cassandra 中的插入是 upsert,直到您使用
IF NOT EXISTS