数据库无法修改的问题(100分)

  • 主题发起人 主题发起人 wwwlaila
  • 开始时间 开始时间
W

wwwlaila

Unregistered / Unconfirmed
GUEST, unregistred user!
我在改变数据库的结构后,即删除一个字段后又重新创建,属性没有改变,
只是在数据结构中的位置改变了,变成了主字段,但在修改其中的数据时
总提示“Key Violation.”,不知是怎么回事,请帮忙解决。
 
'Key Violation' ----关键字冲突, 主字段必须是唯一的,你在重新创建是是不是把它置空了,或者赋了了一个相同得值
 
重新建立索引.
 
你都说啦,把它变成了主关键字。也就是说这个列的值应该是唯一非空的。
可能原来你这个字段中有空值或重复的值,查一下就知道了:
select * from table where field is null; --查空值
--查看是否有重复值
select count(*) from table
select count(distinct field) from table;
看两者是否相同。
 
和原来的字段是一样的,但原来的字段已经删除了。
我这样做的目的是想改变主索引字段
 
你能不能说得更多一点点,比如说你的数据库结构贴出来,还有全部的错误信息,我想不止那
一句吧"Key Violation"?另外,你是什么数据库?
 
错误信息就这一个。取消“索引字段”设置就解决了。
我的数据库有“姓名”、“单位”、“职务”
等字段,顺序也是这样。现在已经录入了很多数据,
我想把“姓名”和“单位”调换一下,目的是想让
录入的数据自动按照“单位”排序。现在“单位”在前面了,
但是却无法自动排序,如何解决?
 
你的当前字段的字段值有重复的。肯定是这个原因,你清空其中的所有内容
 
是有重复的,但不能清除,数据很重要。
清空重新输入就可也了吗?
 
为“单位”字段建立索引不就行了?不用把它设为主键字段啊。
 
要重复也行啊,知道组合索引吗?
给姓名也加入索引,这样只要这两个字段不是全部相同就不会有问题了。
还有一个可能性你看一下,主索引必须在字段中排在前面,否则也会出错的。
 
明明用复合索引简单解决的问题,何必弄得这么复杂,索引是可以是非唯一的。
主键是必须UNIQUE的,几乎所有的数据库都是如此。
 
谢谢大家,问题解决了,原来很简单,哈哈哈哈!!!
多人接受答案了。
 
后退
顶部