mysql错误1064怎么修改?mysql数据库如何处理重复数据?
时间:2023-06-02 11:31:05来源:科技时报网

mysql错误1064怎么修改?

01

首先我们在mysql数据库中准备一个数据表,并且往数据表中插入数据

02

然后我们编写如下图所示的查询语句并且执行,你就会发现执行结果报出了1064错误

03

回到查询语句中我们发现Select单词拼写错误了SQL语句的语法错误都会导致1064错误的出现

04

最后解决这个错误就很简单了,我们只需要把SQL语句写正确即可

mysql数据库如何处理重复数据?

方法一:防止出现重复数据

也就是说我们再设计表的时候,就应该对这些数据设置一个UNIQUE 索引,在插入的时候就可以保证其唯一性,也就不存在有重复的数据了。当然你也可以直接设置为PRIMARY KEY(主键)。效果也是一样的。我们看一个案例:下表中无索引及主键,所以该表允许出现多条重复记录。

CREATE TABLE student

(

first_name CHAR(20),

last_name CHAR(20),

sex CHAR(10)

);

目前first_name,last_name是可以重复的,如果不想重复这里有两个解决办法:

1、设置双主键模式

CREATE TABLE student

(

first_name CHAR(20) NOT NULL,

last_name CHAR(20) NOT NULL,

sex CHAR(10),

PRIMARY KEY (last_name, first_name)

);

现在就无法插入重复数据了。

2、添加unique索引

CREATE TABLE student

(

first_name CHAR(20) NOT NULL,

last_name CHAR(20) NOT NULL,

sex CHAR(10)

UNIQUE (last_name, first_name)

);

这两种看起来形式好像有一点区别,但是能起到相同的作用。此时我们可以插入两条重复的数据,会发现报错。

当然我们还可以在数据库中去验证一下:

SELECT COUNT(*) as repetitions, last_name, first_name

FROM student

GROUP BY last_name, first_name

HAVING repetitions > 1;

在这里我们统计的是 first_name 和 last_name的重复记录数,上面已经用两种方法设置了,这里肯定就是0了。

方法二:在插入时指定能否插入重复数据

在这里我们使用的是Insert ignore into 与Insert into指令。

(1)Insert ignore into会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。

(2)Insert into则直接相反,会直接插入数据,不管数据库里面是否含有重复数据。

我们还是举例说明:

insert ignore into student (last_name, first_name) values ( '张三', '李四');

//结果

Query OK, 1 rows affected (0.00 sec)

insert ignore into student (last_name, first_name) values ( '张三', '李四');

//结果

Query OK, 0 rows affected (0.00 sec)

现在我们看出来了吧,也就是说在执行第一条插入操作的时候,看到数据库没有,则直接插入一条新纪录,因此一行记录受到影响,但是在第二次插入的时候,数据库已经有一条一样的了,因此便不会插入了,0行受到影响。 当然了还有一个指令也可以完成类似于insert ignore into相似的功能,那就是replace into。他表示的是如果存在primary 或 unique相同的记录,则先删除掉。再插入新记录。

方法三:过滤重复数据

如果你需要读取不重复的数据可以在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。

SELECT DISTINCT last_name, first_name

FROM student

ORDER BY last_name;

你也可以使用 GROUP BY 来读取数据表中不重复的数据:

SELECT last_name, first_name

FROM student

GROUP BY (last_name, first_name);

方法四:删除重复数据

这种情况其实就相当于,在水的终点处去解决。看下面sql语句:

//根据student创建一个临时表,并使用group by过滤了重复数据

CREATE TABLE tmp SELECT last_name, first_name, sex

FROM student;

GROUP BY (last_name, first_name);

//删除原student表

DROP TABLE student;

//给这个临时表重新命名

ALTER TABLE tmp RENAME TO stu;

当然你也可以在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录。方法如下:

ALTER IGNORE TABLE student

ADD PRIMARY KEY (last_name, first_name);

OK,解决办法这么多,相信能解决你的问题。

标签: mysql错误1064怎么修改 mysql数据库如

最新
  • mysql错误1064怎么修改?mysql数据库如何处理重复数据?

    mysql错误1064怎么修改?01首先我们在mysql数据库中准备一个数据表,并且往数据表中插入数据02然后我们编

  • 婚姻法解释一二三都是现行有效的吗?民法通则废止了吗?

    婚姻法解释一二三都是现行有效的吗?都有效婚姻法解释一二三四都有效。生效的婚姻法解释包括《最高人民法

  • 奥克斯空调质量怎么样?奥克斯空调质量怎样?

    奥克斯空调质量怎么样?奥克斯作为我们常见的家电品牌,凭借其品牌及优质的服务在广大消费者心中占有一席

  • 10万元的股票交易费用是多少?买一万元股票要多少费用?

    首先,我们要搞清楚股票交易费用的组成部分,它是由交易佣金和印花税以及过户费组成的,所谓佣金费就是

  • 信用卡逾期严重后果是什么?信用卡协商只还本金是真的吗?

    相信目前很多小伙伴对于信用卡都比较感兴趣,那么小搜今天在网上也是收集了一些与信用卡相关的信息来分

  • 新浪分期正规吗?新浪分期打款中多久到账?

    新浪分期正规吗?新浪分期是合法的。新浪分期是新浪旗下的网贷信息平台,可以给用户提供包括分期购物在内

  • 高位放量的特点是什么?高位放量意味着什么?

    成交量的高增长意味着什么?如果涨幅较大,说明还有一定量的增量资金进场,但也意味着一定数量的获利盘已

  • 肥肠需要煮多久才能熟 肥肠需要煮多久才可以吃?

    想必现在有很多小伙伴对于肥肠需要煮多久才能熟是什么方面的知识都比较想要了解,那么今天小好小编就为

  • 临时身份证明怎么进检票口?临时身份证明一个月可以开几次?

    临时身份证明怎么进检票口?1、进站上车的时候,检票口时间的车票,直接检票就可以了。2、进候车室的时候,

  • 王者荣耀海月怎么连招?王者荣耀海月怎么玩?

    王者荣耀海月连招是121A和2213,对线时可先利用一技能命中目标,立即追加二技能控制让最后一段一技能稳

  • 七雄争霸兵种相克关系是什么?七雄争霸兵种装备在哪里获得?

    七雄争霸兵种相克关系是什么?《七雄争霸》游戏共5个兵种,分别为步兵、弓兵、骑兵、战车、石炮。兵种间

  • 缩水是什么意思?资产缩水是什么意思?

    缩水的意思指的是资产缩水,即该消费者的金融资产出现了一定程度的贬值。在一般情况下,央行降息,很多

  • 晴雨伞可以当雨伞用吗 晴雨伞和太阳伞有什么区别?

    想必现在有很多小伙伴对于晴雨伞可以当雨伞用吗是什么方面的知识都比较想要了解,那么今天小好小编就为

  • 小米手机怎么关闭自动亮度调节?小米手机安全模式怎么退出?

    小米手机怎么关闭自动亮度调节1、打开手机设置,点击显示。2、在显示界面点击亮度。3、关闭自动调整亮度

  • 踩过水银的鞋子还能继续穿吗?水银踩到鞋底会带粘上吗?

    踩过水银的鞋子还能继续穿吗?不能如果水银弄到你的鞋子里去了,那么你的鞋子就不能继续使用了。水银是一

  • 投资股票有哪些风险?炒股怎么降低风险?

    投资股票有哪些风险?【1】政治风险如果一个国家或地区的政局发生很大变化,比如政府更迭、国家元首健康

  • 旅游
    • 没有血缘关系的兄弟姐妹可以结婚吗?兄弟姐妹算直系亲属吗?

    • 太原科技大学是不是全国重点大学?太原科技大学校区划分?

    • 遗嘱继承的概念是什么?关于遗嘱继承有哪些法律特征?

    • 我国法律规定侵权损害赔偿标准是什么?侵权损害赔偿标准有哪些相关司法解释?