我开始使用 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/