为了账号安全,请及时绑定邮箱和手机立即绑定

replace防止数据表中重复数据插入

标签:
PHP

用PHP+MYSQL组合做学校给的一个项目时遇到了一点困难,需要导入学生们的学分成绩的时候发现用以往的insert into table(column_name) values (value) ;行不通,因为往往这个学生导入成绩时不只需要导入一次,或者是老师误操作那么很可能在数据库形成完全相同的两条记录。也就是说光用insert行不通。于是我将数据表的两个字段设为unique key索引。以下是我的数据表的结构:

create table student_users(student_num varchar(64),
                           student_name varchar(64),
                           science_mark double(2,1)              unsigned default 0,
                           culture_mark double(2,1) unsigned default 0,
                           bussine_mark double(2,1) unsigned default 0,
                           skill_mark double(2,1) unsigned default 0,
                           society_mark double(2,1) unsigned default 0,
                           sum_mark double(3,1) unsigned default 0,
                           year varchar(10),
                unique key dir(student_num,year));/*学生表保存学生基本信息*/

设置为unique key的dir确认了student_num,year两个字段的唯一值,这个时候再将insert into table(column_name) values (value) ;改成replace into table(column_name) values (value);replace into 关键字提供了更方便的功能,replace会先根据索引查询数据表里的数据,如果根据索引查询到一样的记录就更新(实际上是先删除掉记录,然后再执行insert插入新的记录),如果没有查询到就直接insert。就这样顺利的防止了数据表中有重复数据插入。

点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消