man*_*ish 6 cql cassandra datastax-java-driver datastax
这是我的CQL表:
CREATE TABLE user_login (
userName varchar PRIMARY KEY,
userId uuid,
fullName varchar,
password text,
blocked boolean
);
Run Code Online (Sandbox Code Playgroud)
我有这个datastax java驱动程序代码
PreparedStatement prepareStmt= instances.getCqlSession().prepare("INSERT INTO "+ AppConstants.KEYSPACE+".user_info(userId, userName, fullName, bizzCateg, userType, blocked) VALUES(?, ?, ?, ?, ?, ?);");
batch.add(prepareStmt.bind(userId, userData.getEmail(), userData.getName(), userData.getBizzCategory(), userData.getUserType(), false));
PreparedStatement pstmtUserLogin = instances.getCqlSession().prepare("INSERT INTO "+ AppConstants.KEYSPACE+".user_login(userName, userId, fullName, password, blocked) VALUES(?, ?, ?, ?, ?) IF NOT EXIST");
batch.add(pstmtUserLogin.bind(userData.getEmail(), userId, userData.getName(), passwordEncoder.encode(userData.getPwd()), false));
instances.getCqlSession().executeAsync(batch);
Run Code Online (Sandbox Code Playgroud)
这里的问题是,如果我删除IF NOT EXIST
所有工作正常,但如果把它放回去,它只是不在表中插入记录,也不会抛出任何错误.
那我怎么知道我要插入副本userName
?
我正在使用cassandra 2.0.1
Oli*_*lat 12
使用INSERT... IF NOT EXISTS
,然后您可以使用ResultSet#wasApplied()来检查结果:
ResultSet rs = session.execute("insert into user (name) values ('foo') if not exists");
System.out.println(rs.wasApplied());
Run Code Online (Sandbox Code Playgroud)
笔记:
归档时间: |
|
查看次数: |
3357 次 |
最近记录: |