mysql主键重复则更新,不重复则插入
创新互联公司是专业的武冈网站建设公司,武冈接单;提供网站制作、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行武冈网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
一,建表
二,执行
select * from test_01;结果如下:
再执行
select * from test_01;;结果如下:
2021-10-21
mysql设置主键的代码是PRIMARY KEY (主键字段)。
如:CREATE TABLE Customer (SID integer,Last_Name varchar(30),First_Name varchar(30),PRIMARY KEY (SID))。
主关键字(主键,primary key)是被挑选出来,作表的行的唯一标识的候选关键字。一个表只有一个主关键字。主关键字又可以称为主键。
扩展资料:
永远也不要更新主键。实际上,因为主键除了唯一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。
主键应当由计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了唯一标识一行以外的意义。一旦越过这个界限,就可能产生人为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。
格式:update 表名称 set 字段名称 = 字段名称 + 1 [ where语句]
比如说数据库中有一张student表,要想把id为1的学生成绩(score)加1则
update student set score=score+1 where id = 1
如果你不加where系统就不会知道你具体要更新哪条记录,而导致所有该表中score都增加1,当然,除非这就是你的本意。
如果是双字段主键,则连接条件里加多一个字段就行了
建议修改如下试一试:
update a.menu_option set a.menu_option.`option_text`
= (select `option_text` from f.menu_option
where a.menu_option.menu_id = f.menu_option.menu_id and
a.menu_option.id = f.menu_option.id)
where exists ( select 1 from f.menu_option where
a.menu_option.menu_id = f.menu_option.menu_id
and a.menu_option.id = f.menu_option.id)
或者这样写
update a.menu_option, f.menu_option
set a.menu_option.`option_text`=f.menu_option.`option_text`
where a.menu_option.menu_id = f.menu_option.menu_id
and a.menu_option.id = f.menu_option.id