如果行已存在,如何将行插入表或添加值

时间:2014-03-16 22:46:16

标签: c# mysql sql

我正在制作一个基于C#的程序,该程序使用MySQL数据库来存储数据。我想选择将行添加到表中,或者如果行已存在则向行添加值。我试着写这个,但没有任何效果。我对MySQL命令很陌生,所以这可能很明显,但我无法找到问题的答案。我认为它是这样的(但就像我说的,我可能完全错了):

if exists(update database.table set column = column + 1 where anothercolumn = something)

然后让数据库做的事情:

(insert into database.table (column1, column2, column3) values (a, b, c);

1 个答案:

答案 0 :(得分:0)

如果您在表上定义了唯一键(唯一索引或主键),则可以使用INSERT ... ON DUPLICATE KEY UPDATE语句

 INSERT INTO mytable (col1, col2, col3) VALUES ('a','b','c')
 ON DUPLICATE KEY UPDATE col3 = col3 + 1;

否则,您需要运行两个单独的SQL语句,一个用于添加行的INSERT,或一个用于修改行的UPDATE(就像您显示的那样,除了“if exists”的内容。)

该行已经“存在”,问题是存储了什么值。