在对一个表做试验的时候,往里面添加了几条数据,后来发现原本想作为主键的字段的值都为"NULL",这可不行,删除重新来吧。选中删除的时候就出现了 “已更改或删除的行值要么不能使改行成为唯一行,要么改变了多个行(X行)”的错误。

分析:这种问题大多是由于没有主键(PK)导致同一张表中存在若干条相同的数据。DBMS存储时,只为其存储一条数据,因为DBMS底层做了优化,以减少数据冗余。所以删除或更新一条重复数据就牵一发而动全身。明白了根本原因,那么解决问题就轻而易举了,推荐设置主键,检查是否存在相同行数据。

解决方法:
单击SQL工具栏上的“新建查询”按钮,然后登陆要修改的数据表所在的数据库,然后输入以下SQL语句 delete 数据库名.表名 where 要删除的字段名=‘字段值’ 
例如:

方法:

  新建查询

  

  如图代码

  

  delete 数据库名.表名 where 字段名

  执行

  

  执行完毕。工作完成!

?

然后按F5执行就可以了。 虽然是自己粗心大意犯下的错误,但是从这个错误中学到了东西,感觉这个错误犯的还是值得的。出现错误了就是要进步了~加油!!!

在进行SQL数据库维护时,发现有几行记录明显有错误却删除不了,一执行删除命令就提示“已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行(X行)。”表现为在:数据库中出现了重复的键值或数据,当试图删除时错误提示信息就出来了。建立的几个表都没有关键字,设置好关键字后问题解决。

方法一:这种问题大多由于没有主键引起,可以通过另外加一列主键解决

1、添加主键

ALTER  TABLE   表名

add    id    int     identity  primary   key   (注意:必须加identity,否则添加会失败)

2、删除重复数据

可以手动,也可以用查询语句先查找出来再删除

3、删除新添加的主键列,在原有的表上重新设置某一列为主键

方法二:

利用INSERT INTO 做一些小的变换,具体步骤如下:

先将原用的表做个备份,根据条件将满足条件的数据导到新的表来,再将原表清除,最后将备份表中的数据select过来即可。

第一步:在备份表中导入需要的数据

INSERT INTO DataFile_backup
select * from DataFile where year(consumedate)=条件

第二步:清除原表中的数据

Delete from DataFile

第三步:从备份表中导入数据

select * from DataFile

关于SQL:已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行相关推荐

  1. 【sql server】“已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行“ 解决方案

    [sql server]"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行" 解决方案 参考文章: (1)[sql server]"已更新或删除的行值要么不能 ...

  2. 【SQL Server】已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行 问题解决

    [SQL Server]"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行" 问题 问题阐述 在手动对表进行删除或修改操作时,可能会出现如下情况: 表结构及数据: 原因 ...

  3. 【sql server】已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行 解决方法总结

    #事故现场: 1.在手动修改某表中数据是,出现如下错误提示:  已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行 2.表结构及数据: #解决方法: 1.原因分析:提示被删除的行不是唯一行, ...

  4. 已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行,如何解决

    操作数据库时经常遇到"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行,如下: 原因分析:提示被删除的行不是唯一行,后来检查一遍,发现: 是数据库中出现了重复的键值或数据,当试图 ...

  5. 已更新或删除的行值要么不能使该行成为唯一行

    都说有技在身,行走无忧!可是在最近的项目中却体会到了有技却并不见到万事可破,还需要面对各种各样的变化.按照以往删除一条记录的时候只需要delet就完全可以解决,担当存在多行记录相同的时候,就会提示&q ...

  6. 已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行(2行)

    SQL 已更新或删除的行值要么不能使该行成为唯一行(sqlserver中有多行所有的列重复的数据,无法更新或删除问题) sqlserver中多行所有数据重复,无法更新或删除问题,通常是在没有主键的情况 ...

  7. 已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行

    其实这种错误是很常见的.当做自己的一个笔记,如果你有遇到像我这样的问题,欢迎参考.也欢迎相互交流. 错误名字:已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行. 通过查阅资料,发现产生这个 ...

  8. 数据库操作--已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行

    在对一个表做试验的时候,往里面添加了几条数据,后来发现原本想作为主键的字段的值都为"NULL",这可不行,删除重新来吧.选中删除的时候就出现了 "已更改或删除的行值要么不 ...

  9. SQL 已更新或删除的行值要么不能使该行成为唯一行

    sqlserver中多行所有数据重复,无法更新或删除问题,通常是在没有主键的情况下的表. 解决办法是为表添加主键,或者用含检索条件的sql语句来删除. sql server设置两列为主键的方法是:按住 ...

最新文章

  1. 【Asp.Net】得到http请求中的参数语句
  2. mysql 手工注入教程_mysql手工注入步骤
  3. springmvc三十二:spring mvc的运行流程
  4. POJ1753 棋盘翻转(位压缩+广度优先搜索)
  5. mybatis的Sql语句打印
  6. defer和async属性详解
  7. SkyDNS2源码分析
  8. Dubbo基础知识总结
  9. oracle查询asm的绝对路径,查找ASM 1号文件位置
  10. Excel生成柱状图报表示例
  11. 信息安全基础练习题(看完包过)
  12. C++类学习---------step1
  13. 2022-2027年中国缝制机械行业市场全景评估及发展战略规划报告
  14. 使用maven为web工程引入jstl包时报错
  15. 双十一买什么充电宝好?实惠好用的充电宝推荐
  16. GitHub上广受欢迎的下载神器:youtube-dl
  17. IMSI前5位对应移动运营商名称的列表
  18. (三)Shi-Tomasi角点检测
  19. 基于SpringBoot+Vue的在线音乐网站 音乐管理系统(源码调试+文档)
  20. typescript学习视频

热门文章

  1. Redis 总结 —— 2022/2/4
  2. TQIMAX6q调试笔记二:linux与uboot的编译
  3. Flash Android ANE 打包流程及使用方法
  4. 《裁梦为魂》 - 银临 :OI版
  5. 网页自适应手机屏幕的几种方法
  6. Linux meld安装
  7. 火焰图:全局视野的Linux性能剖析
  8. Java集合类框架总结
  9. macOS键盘定制神器Karabiner Elements
  10. 我的世界java边境之地_我的世界边境之地是什么 我的世界边境之地介绍