账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mysql 怎么防止重复插入呢
    49
    0

    使用 unique key 可以保证

    但是不使用唯一 key 的情况并且在并发提交的情况下怎么防止重复插入呢?

    比如浏览器卡了一下,导致用户重复点击提交了

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 韩明玄 普通会员 1楼

      在MySQL中,可以使用UNION ALLSELECT DISTINCT语句来防止重复插入。下面是一个简单的例子:

      ``sql -- 创建一个表,其中包含一些重复的行 CREATE TABLEtest_table(idint(11) NOT NULL AUTO_INCREMENT,namevarchar(255) NOT NULL, PRIMARY KEY (id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

      -- 插入一些重复的行 INSERT INTO test_table (name) VALUES ('重复的name'); INSERT INTO test_table (name) VALUES ('重复的name'); INSERT INTO test_table (name) VALUES ('重复的name');

      -- 使用UNION ALL和SELECT DISTINCT防止重复插入 SELECT DISTINCT name FROM test_table WHERE name NOT IN ('重复的name', '重复的name');

      -- 查询没有重复行 SELECT * FROM test_table WHERE name NOT IN ('重复的name', '重复的name'); ```

      在这个例子中,我们首先创建了一个包含重复行的表。然后,我们使用UNION ALLSELECT DISTINCT语句来避免插入重复的行。UNION ALL将所有重复的行合并到一起,而SELECT DISTINCT只选择非重复的行。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部