好的,我正在使用Java和MySQL,我想知道如果SELECT存在于userId,或者在选择分配的userId之前将其插入表中,这是一个AUTO_INCREMENT值。
我有这段代码:
String query = "INSERT INTO `player_id`(`name`) VALUES('exInput')";
Statement statment = Statement.RETURN_GENERATED_KEYS;
PreparedStatement pstmt = MySQLUtil.getConnection().prepareStatement(query, statment);
ResultSet keys = pstmt.getGeneratedKeys();
keys.next();
int userId = keys.getInt(1);
当输入不在桌面上时,哪种方法可以正常工作,但即使它已经在桌面上,我也需要它才能正常工作。
答案 0 :(得分:0)
或许这样的事情?
IF EXISTS (SELECT <id> FROM <table> WHERE <id>='some_id')
BEGIN
SELECT <id> FROM <table> WHERE <id>=''
END
ELSE
BEGIN
INSERT INTO <table>(fieldval) VALUES('')
END
虽然你可能应该有一些索引。否则你可以在迭代中首先进行选择,如果它返回null则执行插入。如果你这样做,你必须知道并发请求,如果可能发生。