我从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。 UNIQUE,ON CONFLICT IGNORE以我需要的方式工作,从不附加重复项。我的问题是我似乎无法让它在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);
任何解决方案或批评都非常感谢!
答案 0 :(得分:1)
在MySQL中,您可以自行决定如何处理重复项。 INSERT IGNORE ...
是处理此问题的首选方式。
请注意,UNIQUE
索引不会触发NULL
值,因为NULL=NULL
为false。