| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1021 人关注过本帖
标题:有关update一个表的问题(好像不简单)
只看楼主 加入收藏
尤慕思
Rank: 2
等 级:论坛游民
帖 子:18
专家分:12
注 册:2011-2-26
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:10 
有关update一个表的问题(好像不简单)
有这样一个表:
自动编号    学号        姓名       课程编号    课程名称  分数        
----------- ----------- -------- ----------- ----- ----------- -----------
3           2005001     张三       1           数学    69         
2           2005002     李四       1           数学    89         
3           2005001     张三       1           数学    69   

本来自动编号一列是按1,2,3来的,结果我把第一行输入错了,现在想用update 语句
把第一行的自动编号改为1,请问该如何操作啊   , 恳求路人甲的解答
搜索更多相关主题的帖子: 姓名 
2011-03-30 16:56
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:5 
这个自动编号好象是改不了的,他不是数据库数据的一部分,而是数据库管理系统自动编的号。好像要用数据库软件改!

   唯实惟新 至诚致志
2011-03-30 19:25
尤慕思
Rank: 2
等 级:论坛游民
帖 子:18
专家分:12
注 册:2011-2-26
收藏
得分:0 
回复 楼主 尤慕思
首先谢谢你的热心回答!
还有就是,那个自动编号是我创建表时命名的列,
不是系统自动给的。
2011-03-30 20:52
尤慕思
Rank: 2
等 级:论坛游民
帖 子:18
专家分:12
注 册:2011-2-26
收藏
得分:0 
回复 2楼 qq1023569223
首先谢谢你的热心回答!
还有就是,那个自动编号是我创建表时命名的列,
不是系统自动给的。
2011-03-30 20:56
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:8 
首先你的表的第一行和第三行是一样的啊!这个必须要改一下,要不然改的时候会全部一起改的!
SQL语句是: UPDATE 表名 SET 自动编号=1 WHERE 姓名='张三'
要看一下你的自动编号的字类型是不是数字型的,假如是字符型的,上面的1还要用单引号括起来!

   唯实惟新 至诚致志
2011-03-30 21:42
尤慕思
Rank: 2
等 级:论坛游民
帖 子:18
专家分:12
注 册:2011-2-26
收藏
得分:0 
回复 5楼 qq1023569223
这个我知道,但实际情况是他两行确实一样了,我想用update改更改但做不到,
所以才在这里求救的,
第一列是int型的,谢谢你
2011-03-30 21:59
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
收藏
得分:8 
首先出现这样的问题是因为你的表没有设置主键造成的
其次出现这样的问题会导致重复的记录总是保持步调一致
解决办法是删除重复的记录,然后再录入.
2011-03-30 22:16
尤慕思
Rank: 2
等 级:论坛游民
帖 子:18
专家分:12
注 册:2011-2-26
收藏
得分:0 
回复 6楼 尤慕思
对的,看来这是必要做法了
2011-03-31 12:22
尤慕思
Rank: 2
等 级:论坛游民
帖 子:18
专家分:12
注 册:2011-2-26
收藏
得分:0 
回复 6楼 尤慕思
起初我是这样做的,先建立一个视图:
create view test
as
select top 1 * from 学生表(即上述表的名字)

则视图test中存的是这样一行数据:
自动编号    学号        姓名       课程编号    课程名称 分数         
----------- ----------- -------- ----------- ----- -----------
3           2005001     张三       1           数学    69

然后通过视图来修改基表:
update test set 自动编号=1

猜怎么着?错误信息如下:

服务器: 消息 4427,级别 16,状态 1,行 1
视图或函数 'test' 不可更新,因为其定义中包含 TOP 子句。

这也算是一个教训吧
2011-03-31 12:59
zhaoxiao183
Rank: 3Rank: 3
来 自:湖南浏阳
等 级:论坛游侠
帖 子:48
专家分:144
注 册:2011-4-2
收藏
得分:9 
自动编号 那一列 不是自增长的 就可以改的   但是 你这个表貌似没有主键  UPDATE的时间你看有没有可以惟一标示的列
update "表名" set "自动编号" = 1 where "惟一标示的列" = **

程序员是孤独的
2011-04-02 11:21
快速回复:有关update一个表的问题(好像不简单)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012005 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved