呕心沥血总结出来的MySQL常见错误以及解决方法(二)

MySQL常见错误总结目录

🔥第一章 [MySQL错误总结(⭐建议收藏)
🔥第二章 MySQL错误总结(⭐建议收藏)

前言

❤️操作数据库时,总是出现一些常见错误,这些错误看似不同,但是万变不离其宗,
于是便有了把这些常见错误的总结下来的心思, 希望可以给读到此文章的读者带去帮助,这样这篇文章也有了意义。
如果觉得有帮助可以**点赞收藏**支持一下,能关注一下就再好不过❤️‍

一、MySQL错误总结(二)

1007 - Can’t create database ‘myt3’; database exists

问题分析与解决方案

  • 1 .这是因为已经有当前这个表,再创建就会重复,
    建议使用以下语句创建
CREATE DATABASE IF NOT EXISTS myt3 CHARACTER SET 'utf-8';

1062 - Duplicate entry 'XXX for key ‘XXX’

问题分析与解决方案

  • 1 .字段设置了唯一约束,在插入数据时,数据重新冲突

1091 - Can’t DROP XXX; check that column/key exists

问题分析与解决方案

  • 1 .这是因为再创建约束时,会自动生成一个索引(如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同;如果是组合列,那么默认和()中排在第一个的列名相同。也可以自定义唯一性约束名),当我们删除约束时,需要和约束名相同才能删除
  • 例如 先查询到有哪些约束,以及索引名
    SELECT * FROM information_schema.table_constraints WHERE table_name = ‘表名l’;
    在这里插入图片描述
    再删除约束
    ALTER TABLE test_notnull DROP INDEX test_unique_phone2;
    在这里插入图片描述

1115 - Unknown character set: ‘utf-8’

问题分析与解决方案

  • 1 .这是因为字符集设置错误,比方说写成utf-8,正确的应该是utf8
    正确写法
CREATE DATABASE IF NOT EXISTS myt3 CHARACTER SET 'utf8';

1136 - Column count doesn’t match value count at row 1

问题分析与解决方案

  • 1 .在插人数据的过程中,数据和字段不匹配(可能数据多字段少,或者数据少,字段多)

1138 - Invalid use of NULL value

问题分析与解决方案

  • 1 .出现这个问题是因为,字段里面先有NULL ,后需要修改字段的约束为NULL,则导致约束失败
    在这里插入图片描述

1166 - Incorrect column name 'owner ’

问题分析与解决方案

  • 1 .这个原因是字段里面有空格了,仔细检查删空格

错误号码1251 Client does not support authentication protocol requested by server;consider upgrading MysQL client

问题分析与解决方案

  • 1 .之是因为mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,
  • 我们需要去更改一下

> ## 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

问题分析与解决方案

  • 1 .这是因为默认开启了 bin-log(保证主存数据一致),需要在创建函数时选择,指明程序使用SQL语句的限制。
  • 在这里插入图片描述
    例如
    在这里插入图片描述

1264 - Out of range value for column ‘f1’ at row 1

问题分析与解决方案

  • 1 . 插入数据时,数据超过的数据类型的取值范围,比方128超过了TINYINT的(-127——128)的范围,就会报这类型的错误。
  • 以下是常见的取值范围
    在这里插入图片描述

1406 - Data too long for column ‘c_gender’ at row 1

问题分析与解决方案

  • 1 .在添加数据时,超过了字段的范围, 可以修改数据,或者修改字段的长度。

1423 - Field of view ‘XXX’ underlying table doesn’t have a default value

问题分析与解决方案

  • 1 .在添加或修改视图数据的时候出现这个情况,首先明确修改视图也会修改到数据表的内容,然后因为开始创建视图时,只选用了部分数据表的字段作为视图,而另一部分字段里面存在约束,比方说不能为NULL,导致事务无法提交。
    举例
    1数据表的 salary 设置非NULL
    在这里插入图片描述
    2 创建视图CREATE VIEW v_emp AS SELECT emp_id,emp_name,dept_id FROM emp2; 此时没有选择salary字段
    3插入视图操作,引发错误
    在这里插入图片描述

1439 - Display width out of range for column ‘XX’ (max = 64)

问题分析与解决方案

  • 1 .这是因为创建表或者修改表时,数据类型的长度范围超过,
    -比方说BIT类型的长度范围是1 <= M <= 64 如果超过64就出问题。

1452 - Cannot add or update a child row: a foreign key constraint fails (test01_office.emp, CONSTRAINT emp_ibfk_1 FOREIGN KEY (deptid) REFERENCES dept1 (did))

问题分析与解决方案

  • 1 原因是 主表里面的被参考字段没有此数据或者值不匹配,所以当从表的外键添加数据时,加不进去
  • (例如员工表里面的部门字段,如果部门表里面没有10号部门,则员工表就不能添加到10号部门)

1822 - Failed to add the foreign key constraint. Missing index for constraint ‘XXX’ in the referenced table ‘XXX’

问题分析与解决方案

  • 1 .增加外键失败,原因是主表里的字段需要为主表的主键唯一约束的列,才能作为被参考字段

3780 - Referencing column ‘deptid’ and referenced column ‘did’ in foreign key constraint ‘emp_ibfk_1’ are incompatible.

问题分析与解决方案

  • 1 .原因是从表的deptid字段和主表的did字 段的数据类型不一致,并且要它俩的逻辑意义一致

##4028 - A table must have at least one visible column.

问题分析与解决方案

  • 1 .这是因为创建表的时候,没有设定字段,创建表最少需要设置一个字段
    错误案例
CREATE TABLE IF NOT EXISTS myt4;

希望对各位的学习有帮助,也希望小伙伴们多多支持,留下你们的爱心💕和赞👍!
💗最后最佳听众祝大家能够拿到心仪的Offer💗

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值