选择是否存在,否则插入并选择

时间:2014-12-07 21:47:04

标签: java mysql

好的,我正在使用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);

当输入不在桌面上时,哪种方法可以正常工作,但即使它已经在桌面上,我也需要它才能正常工作。

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则执行插入。如果你这样做,你必须知道并发请求,如果可能发生。