免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7753 | 回复: 6
打印 上一主题 下一主题

谁知道,怎么去掉列的unique属性啊? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-07-24 17:34 |只看该作者 |倒序浏览
如果我有一个表test,其中一个列(id)是primary key,列(user)是unique,我现在想把这个unique的性质去掉,把user和另一个列(ip)作为一个关联主键,后者我知道,primary key(user,ip)就可以关联了,但是怎么从现有的表中去掉user的unique,把id改成unique呢?
就是想实现当ip和user同时重复,才不允许写进mysql里。
而现在只判断user的唯一性了,建表的时候忘记会有不同Ip了,导致ip不同username相同的数据收集不到!

论坛徽章:
0
2 [报告]
发表于 2004-07-25 00:02 |只看该作者

谁知道,怎么去掉列的unique属性啊?

顶,试了几种都无效,我也想知道

论坛徽章:
0
3 [报告]
发表于 2004-07-25 00:06 |只看该作者

谁知道,怎么去掉列的unique属性啊?

本人最终在mysql官方所提供的mysql control center的图形客户端中去除unique属性。

论坛徽章:
0
4 [报告]
发表于 2004-07-25 17:19 |只看该作者

谁知道,怎么去掉列的unique属性啊?

其实不用!
经过努力学习,发现这样可以实现!
1alter table tablename modify user char(20) not null;
也就是把以前的设置推翻,重新定义一下。
2alter table tablename drop primary key;
去掉key的同时去掉unique的
3再作关联!
根据这个思路就可以了。

论坛徽章:
0
5 [报告]
发表于 2004-07-25 22:33 |只看该作者

谁知道,怎么去掉列的unique属性啊?

[quote]原帖由 "zz"]如果我有一个表test,其中一个列(id)是primary key,列(user)是unique,我现在想把这个unique的性质去掉,把user和另一个列(ip)作为一个关联主键,后者我知道,primary key(user,ip)就可以关联了,但是怎么从现有的表..........[/quote 发表:


其实unique可以看作一个index,用终端登陆后
show index from table;
就能看到这个unique index了,执行
alter table drop index xxx;
就可以了

论坛徽章:
0
6 [报告]
发表于 2004-07-25 23:46 |只看该作者

谁知道,怎么去掉列的unique属性啊?

建议你安装一个phpmyadmin,什么问题都解决了

论坛徽章:
0
7 [报告]
发表于 2004-07-26 10:37 |只看该作者

谁知道,怎么去掉列的unique属性啊?

本人也提供一个思路,在Mysql中如果没有primary key 的话,Mysql会将unique自动的设为主键,你只要在alter table table_name drop primary key即可,所以如果有primary key 的话,只要做两次以上的操作就可以了,不过楼上yejr兄弟做的更简单。更好,在Mysql中的unique只是为了兼容ansi所做的一个设置,所以将它看成index更直接。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP