我正在制作一个基于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);

最佳答案

如果您在表上定义了唯一键(唯一索引或主键),则可以使用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 exist”之外)。

该列已“存在”于行中,问题是要存储什么值。

关于c# - 如何在表中插入行或在行已存在的情况下增加值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22444122/

10-16 07:38