正确的 INSERT .. ON DUPLICATE KEY 语法?
Posted
技术标签:
【中文标题】正确的 INSERT .. ON DUPLICATE KEY 语法?【英文标题】:Correct INSERT .. ON DUPLICATE KEY syntax? 【发布时间】:2011-09-20 14:48:54 【问题描述】:如何检查表上是否已经存在特定的主键(字符串变量),如果没有插入新记录,否则只需使用 c# 用新值更新现有记录?
我试过了
mysqlCommand cmd2 = new MySqlCommand("INSERT INTO mapdisplay
(ID,Distance)
VALUES
(@r,@c,)
ON DUPLICATE KEY UPDATE mapdisplay
(Distance)
VALUES
(@c,)", conn);
但我认为语法错误。
【问题讨论】:
你为什么要破坏你自己的帖子? 【参考方案1】:INSERT ... ON DUPLICATE KEY UPDATE ...
【讨论】:
【参考方案2】:INSERT INTO mapdisplay
(HexID,FlightNo,Lat,Lon,Alt,Course,Groundspeed,Verticalrate,Distance)
VALUES (@r,@c,@f,@t,@w,@q,@u,@e,@y)
ON DUPLICATE KEY UPDATE
FlightNo = @c
,Lat = @f
,Lon = @t
,Alt = @w
,Course = @q
,Groundspeed = @u
,Verticalrate = @e
,Distance = @y;
查看此链接中的最后一个示例:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
【讨论】:
以上是关于正确的 INSERT .. ON DUPLICATE KEY 语法?的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB - ON DUPLICATE KEY ..UPDATE 行为
无法插入显式值,因为 IDENTITY_INSERT 为 OFF,但无法将 IDENTITY_INSERT 设置为 ON,因为它已经为 ON
set IDENTITY_INSERT on 和 off 的设置
MySQL INSERT ON DUPLICATE KEY UPDATE