当前位置 : 主页 > 编程语言 > 其它开发 >

新阁上位机开发——数据库之SQL语句提交违法数据库约束的错误

来源:互联网 收集:自由互联 发布时间:2022-05-30
最近小伙伴学习数据库真的是掉头发啊,错误一堆堆,总也解决不完,其实对于我们老鸟来说,如果认真总结一下,会发现错误就那么几种,掌握了你就是数据库老鸟,来吧一起看看都

最近小伙伴学习数据库真的是掉头发啊,错误一堆堆,总也解决不完,其实对于我们老鸟来说,如果认真总结一下,会发现错误就那么几种,掌握了你就是数据库老鸟,来吧一起看看都有啥。

 

 

 

《C#程序》的错误提示:

 

 

 

《SQLServer数据库的错误》

 

 

 

【问题分析】:以上两种错误都是同一个原因,就是sql语句中“字段的个数”和实际“字段 值”(values里面的)不一样导致的,解决方法就是仔细检查,有多少个字段,然后看给的对应值的个数是不是也是一样的,以上错误就是values后面的字段值,对应最后一个字段DepartmentId缺少了值,添加上即可。
【解决方法】:

 

 

 

 

 


《C#程序》的错误提示:

 

 

 

《SQLServer数据库的错误》

 

 

 

【问题分析】:以上两种相同错误“插入重复键”,就是因为在数据表中,某些字段添加了“唯一约束”,这种问题,可以自己打开数据表,肯定有这种情况,比如上面的表中,身份证号就是唯一约束,但是我们从数据库中,查看数据表Employee发现,这个身份证号(120223199001091218)已经存在了,所以报错。

【解决方法】:改换成不同的身份号就行了。

 

 

 

 

《C#程序》的错误提示:

 

 

 

《SQLServer数据库的错误》

 

 

【问题分析】:以上两种相同的错误,是因为我们给的values中,有的字段值超过了字段定义的长度,这时候,需要去数据库中看一下具体的每个字段的长度,然后对比SQL语句中给的值,当然如果有很多字段,也不是每一个都对比,一般就是看看“字符串类型的字段”就可以了,经过查看,在Gender字段中,我们设置的是char(2)两个字符长度,而我们给的值是“男1”,也就是3个字符,所以超出长度,报错。

【问题解决】:只需要改成“男”就可以了。

 

 

 

 

 

《C#程序》的错误提示:

 

 

 

《SQLServer数据库的错误》

 

 

【问题分析】:凡是提示“CHECK约束冲突”的,一定要检查当前表中哪些字段添加了CHECK约束,然后根据约束要求,去核对values中的字段值,比如我们这个表中Gender性别列增加了如下约束:

 

 

右键点击表名称,选择“设计”,然后在表的设计状态下,任何地方再次右键,选择CHECK约束:

 

 

弹窗如下窗口:

 

 

发现,Gender的约束是“男”或“女”,而在上面的SQL语句中,我们写了“非”,所以报错。类似的问题,比如你给某一个字段设置成30-50范围的值,而你的数据不在这个范围,同样也是这个错误。

【问题解决】:只需要把values中的“非”改成“男”就可以了。

 

 

 

 

《C#程序》的错误提示:

 

 

 

《SQLServer数据库的错误》

 

 

【问题分析】:以上两个错误是一样的,非常明确的提示了是“Foreign  key”约束,并且告诉了是表“Department”,对应的字段是“DepartmentId”。这样的话,我们就去核对一下,当前SQL语句中最后一个字段19对应的是DepartmentId,所以,我们去Department表中,看看所有的DepartmentId列中,有没有这个19,打开数据表如下:

 

 

发现确实没有19,这样的话主键表里面没有的数据,从表中是不能使用的,这个也是外键约束的基本要求。

【问题解决】:只要把19改成,数据表中10-15中的值就可以了。

【特别提示】:只要是“约束冲突”,检查的方法都一样,看清楚错误提示的是什么类型的约束,然后去表中查看,仔细核对即可。

以上问题,只要用数据库,其实不管是老鸟还是新手,都会遇到,而在这里如何快速解决才是我们今天这篇文章的关键。

上一篇:vue项目首屏加载优化--gzip
下一篇:没有了
网友评论