mysql写入数据库三个字段都不能重复?[100分来者有分] 1.shortname和songname都是单一的,ID似乎并不是必需的2.感觉shortname自己一个做主键就可以3.可以把shortname和songname设定联合索引4.不知道具体需求,但是最好有添加/更新时间 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果可以将“把shortname和songname设定联合索引”那多一个ID字段也无所谓了,加上“添加/更新时间”是很有必要的,“设定联合索引”具体怎么操作? ALTER TABLE `table` ADD UNIQUE ( `shortname` , `songname`) ID最好做成自增长的主键,可以做为页面之间传递的参数,保证其唯一性. 插入前查询校验仍是比较好的办法其次就是设定定段为唯一key但这个查询时可能出错,你还得捕捉出错信息个人觉得仍是插入前查一下为好 没有试过直接在SQL语句进行判断是否重复,还是查询一下好一些。ID阶段,用AUTO_INCREMENT的属性,也就是三楼说的自增长,肯定是唯一的,只不过有时候会中间断掉。 直接设定主键或者UNIQUE,不需要在程序里面做什么查询效验!如果出错,直接抓取数据库返回的错误信息就可以了。 6L的方法是正解。用数据库内置的校验更好。LZ说的问题用联合唯一索引就可以解决了。 路过可以建立多一个field, 内容是md5(shortname+songname)比较起来也方便。 看楼主的字段名称应该不需要同时比较3个字段如楼上所说的用UNIQUE就可以有重复就会插入失败 UNIQUE ( `shortname` , `songname`) 我在执行测试是这样的,shortname和songname都相同就不能写入数据库,也就是说,保这两个字段不同时重复,但我要的是任意一个字段都不重复,id那个可以自增长创建这都不是问题了。UNIQUE ( `shortname` , `songname`) 这句如果存在:shortname=nh songname=123456插入“shortname=nh songname=你好”也成功,这就不能保证这两这段任意一字段都不重复了?郁闷,还是没解决,大家帮再想想。。先谢谢了! 在shortname和songname上各建一个唯一索引啊,楼上的同学已经说得很清楚了 get方式提交的时候,IE地址栏里会自动把隐藏域变量写在?后面。 Apche服务器的问题 再问个:怎么样把判断提交页面的地址!3KS! 关于删除和下载的一个问题。。 【紧急求助】Fatal error: Call to a member function *** on a non-object php 简单问题 <?php echo _('Error'); ?>这句什么问题 Apache + PHP连Oracle的配置出错 如何实现这效果? python 版本号那标红 如何遍历一个多维数组? 为什么用list分解出来的字符串转不了整数?
ID最好做成自增长的主键,可以做为页面之间传递的参数,保证其唯一性.
其次就是设定定段为唯一key
但这个查询时可能出错,你还得捕捉出错信息
个人觉得仍是插入前查一下为好
没有试过直接在SQL语句进行判断是否重复,还是查询一下好一些。ID阶段,用AUTO_INCREMENT的属性,也就是三楼说的自增长,肯定是唯一的,只不过有时候会中间断掉。
如果出错,直接抓取数据库返回的错误信息就可以了。
比较起来也方便。
应该不需要同时比较3个字段如楼上所说的用UNIQUE就可以
有重复就会插入失败
我在执行测试是这样的,shortname和songname都相同就不能写入数据库,也就是说,保这两个字段不同时重复,但我要的是任意一个字段都不重复,id那个可以自增长创建这都不是问题了。
UNIQUE ( `shortname` , `songname`)
这句如果存在:
shortname=nh songname=123456
插入“shortname=nh songname=你好”也成功,这就不能保证这两这段任意一字段都不重复了?
郁闷,还是没解决,大家帮再想想。。先谢谢了!