我的表有三列:uid、nick和balance。
我可以很好地插入新行,但是由于bank自动递增,使得每一行都是唯一的,nick的副本很容易出现。不过,我不希望这样,我只希望每个uid有一行。

    target = input.group(2)

    cursor.execute ("INSERT INTO bank (nick, balance) VALUES('" + db.escape_string(target.lower()) + "', 5)")
    db.commit()

    bot.say('An account for ' + target + ' has been created.')

到目前为止,这是我的代码,但是我不确定如何创建一个nick查询,然后在插入新行之前检查表中是否存在SELECT

最佳答案

我会采取不同的方法。我将在nick列上添加一个DB级别的唯一约束:

ALTER TABLE bank ADD UNIQUE (nick);

在Python代码中,然后放置一个tryexcept来适当地处理与唯一约束冲突的异常。

关于python - 如果匹配的MySQL行不存在,如何插入MySQL行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10143738/

10-09 01:00