在表位置添加唯一索引,这样就不会插入重复的记录
ALTER IGNORE TABLE location ADD UNIQUE KEY ix1(country, city);
这将自动从表中删除重复的记录,对于以后的插入查询,您需要使用
INSERT IGNORE子句来避免出现重复的错误。
但正如
@AD7six注释中所建议的那样,它可能不适用于MySQL版本
5.1.41,5.5.1-m2,6.0:请参见此处的错误
或使用
DELETe查询删除重复项的另一种安全方法:
DELETE aFROM location a LEFT JOIN ( SELECt locid FROM location GROUP BY country, city )b ON a.locid = b.locidWHERe b.locid IS NULL;
要重新设置
auto_incrementcolumn的值,
locid只需将
primary keyon 放下
locid并重新创建它:
ALTER TABLE location DROP column locid;ALTER TABLE location ADD COLUMN locid INT unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
或
locid使用
UPDATE查询重新设置值的替代方法:
SET var_locid = 0;UPDATE locationSET locid = (@var_locid := @var_locid + 1)ORDER BY locid ASC;



