插入数据,如果已插入,则在sql中更新

zee*_*sar 8 java sql

我只是想将数据插入到SQL数据库表中,如果已经插入了一些数据,那么我想更新该数据.我怎么能用Java做到这一点.请帮助我,并提前抱歉英语不好.

npi*_*nti 6

您可以使用EXISTS关键字来检查行是否存在:

IF EXISTS (SELECT TOP 1 * FROM...)
BEGIN
    UPDATE....
END
ELSE
BEGIN
   INSERT...
END
Run Code Online (Sandbox Code Playgroud)


And*_*eas 5

称为的标准SQL语句(如果存在)INSERTUPDATE(如果存在)MERGE

由于您没有指定要查询的DBMS方言,因此,我将为您介绍Wikipedia文章“ Merge(SQL) ”,该文章涵盖了大多数DBMS方言。摘要:

MERGE INTO tablename USING table_reference ON (condition)
WHEN MATCHED THEN
  UPDATE SET column1 = value1 [, column2 = value2 ...]
WHEN NOT MATCHED THEN
  INSERT (column1 [, column2 ...]) VALUES (value1 [, value2 ...])
Run Code Online (Sandbox Code Playgroud)

数据库管理系统Oracle数据库DB2TeradataEXASOLCUBRIDMS SQLVectorwise支持标准语法。有些还添加了非标准的SQL扩展。

MySQL的INSERT ... ON DUPLICATE KEY UPDATE

SQLiteINSERT OR REPLACE INTO

PostgreSQLINSERT INTO ... ON CONFLICT


小智 3

只需识别数据集中的唯一项目(例如Idcode)。然后通过使用它尝试首先执行SELECT查询。如果结果集为空,则执行INSERT,否则尝试更新详细信息。