求mysql语句,存在则更新,不存在则插入。

xiaoyaoyoudm 2007-07-12 11:44:55
如题,对mysql的一个简单操作,存在记录则更新,不存在则插入。

我现在采用两条sql语句来做(先select再insert或者update)
我想用一条语句执行这个任务,请问这sql怎么写。

好像很简单,可惜本人sql语法不熟悉。

谢谢
...全文
611 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pittypat 2007-07-12
  • 打赏
  • 举报
回复
my sql 里面直接使用replace语句
beyondjay 2007-07-12
  • 打赏
  • 举报
回复
哦,看漏了,还要加上
ELSE
UPDATE......
beyondjay 2007-07-12
  • 打赏
  • 举报
回复
IF EXISTS
( SELECT 1 FROM tblA WHERE id=1)
INSERT INTO tblA VALUES(........)
godgreat 2007-07-12
  • 打赏
  • 举报
回复
没有写全比较简单,自己马上就会写
godgreat 2007-07-12
  • 打赏
  • 举报
回复
if (Query(查询条件).Rows.Count < 1)
{
mysql的语句和sqlserver的差不多
insert();
Response.Write("<script>alert('添加成功!!!')</script>");
}
else
{
Response.Write("<script>alert(已存在!!!')</script>");
update();
}
DataTable Query(string id)
{
数据访问
DataTable dt = new DataTable();
return dt;
}
godgreat 2007-07-12
  • 打赏
  • 举报
回复
沙发先坐,马上给代码,你准备结帖
qwertxp 2007-07-12
  • 打赏
  • 举报
回复
REPLACE功能与INSERT完全一样,除了如果在表中的一个老记录具有在一个唯一索引上的新记录有相同的值,在新记录被插入之前,老记录被删除。
tomtory 2007-07-12
  • 打赏
  • 举报
回复
你要的和这种差不多的哈 也可以用这种方法做的
tomtory 2007-07-12
  • 打赏
  • 举报
回复
可能说得不是很清楚的啦 哈哈 自己更具我给的代码摸索一下就应该可以的了
tomtory 2007-07-12
  • 打赏
  • 举报
回复
使用存储过程
建立存储过程
CREATE PROCEDURE CA_Global_AD_CreateUpdateDelete
@ADID int,
@ADName varchar(50) = '',
AS
BEGIN
IF(@Action = 'Create')
BEGIN
INSERT INTO CA_Global_AD
(
ADName,

)
VALUES
(
@ADName,
)
END
ELSE IF (@Action = 'Update')
BEGIN
IF EXISTS ( SELECT ADID FROM CA_Global_AD WHERE ADID = @ADID)
BEGIN
UPDATE CA_Global_AD SET
ADName = @ADName,
WHERE ADID = @ADID
END
END
ELSE IF (@Action = 'Delete')
BEGIN
IF EXISTS ( SELECT ADID FROM CA_Global_AD WHERE ADID = @ADID)
BEGIN
DELETE FROM CA_Global_AD WHERE ADID = @ADID
END
END
SET @ReturnValue = @@IDENTITY
END
GO


建立实体类UserAction.cs
/*
* Class :
* Namespace : CA.Enumerations
* Assembly : CA.Components
* Author : Qiu Yanjun
* Description : 用户执行数据库操作的枚举
*/
using System;
using System.Collections.Generic;
using System.Text;

namespace CA.Enumerations
{
public enum UserAction
{
Create,
Update,
Delete
}
}



前台调用法
public bool CreateUpdateDeleteUserInfo(UserInfo objUserInfo, UserAction Action)
{
if (Action == UserAction.Create)
{
//增加
}
if (Action == UserAction.Update)
{
//修改
}
if (Action == UserAction.Delete)
{
//删除
}
}




在前台操作数据库的时候一定要传Create Update Delete这些条件回去
不然数据库不知道运行那条语句

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧