mysql 冲突忽略

标签 mysql

我开始使用 sqlite3,现在必须切换到 mysql。我的sqlite3创建表代码结构是

CREATE TABLE IF NOT EXISTS players(
          "Name" TEXT,
          "B/T" TEXT,
          "Ht" TEXT,
          "Wt" TEXT,
          "DOB" TEXT,         
          UNIQUE (Name, DOB) ON CONFLICT IGNORE);

我正在使用一个 python 脚本,该脚本从 data_frame 附加到 db.table。独特的冲突忽略按照我需要的方式工作,从不追加重复项。我的问题是我似乎无法让它在 mysql 中工作。我一直在寻找关于如何从 mysql 中的这一行获得相同结果的任何想法。我当前的 mysql 行出现错误:

CREATE TABLE IF NOT EXISTS players(              
          Name VARCHAR(30),
          `B/T` VARCHAR(5),
          Ht VARCHAR(5),
          Wt VARCHAR(5),
          DOB VARCHAR(11),
          UNIQUE (Name, DOB) ON CONFLICT IGNORE);

非常感谢任何解决方案或批评!

最佳答案

在 MySQL 中,由查询自行决定如何处理重复项。 INSERT IGNORE ...是处理此问题的首选方法。

请注意,UNIQUE 索引不会在 NULL 值上触发,因为 NULL=NULL 为 false。

关于mysql 冲突忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42101670/

相关文章:

mysql - 如何让用户今天过生日?

Mysql条件不工作

php - 如何在同一个 PHP 页面上显示两个不同的 MySQL 表

mysql - Toad for MySQL 和版本控制的问题

mysql - 排序 EAV 数据库

mysql - 为什么在 MySQL 中 'select *' 和 'select id' 之间的 id 不同?

php - 基本数据表 Ajax 配置不起作用

PHP + MySQL - 应该使用什么列类型来存储序列化对象?

php - 使用 PHP 制作的基于浏览器的策略游戏如何运行?

MySQL - SELECT MAX(), 并获取相应字段