我正在尝试编写一个查询来检查仪表是否存在,然后进行更新,而不是插入到每月数据表中!问题是我对语法感到困惑,我不知道该怎么做!
这是数据库设计。假设我的电表编号为 2012345,我该怎么做?谢谢
最佳答案
在 SQL Server 中(仅使用 name
作为演示,您当然需要更多字段)
MERGE meters AS target
USING (SELECT '2012345') AS source (meternumber)
ON (target.meternumber = source.meternumber)
WHEN MATCHED THEN
UPDATE SET name='MeterUpdate#1', meternumber=source.meternumber
WHEN NOT MATCHED THEN
INSERT (name, meternumber) VALUES ('MeterInsert#1', source.meternumber);
在MySQL中,在meters上创建唯一索引(meternumber);
CREATE UNIQUE INDEX bop ON meters(meternumber);
然后使用插入/更新;
INSERT INTO meters (name, meternumber) VALUES ('MeterInsert#1', '2012345')
ON DUPLICATE KEY UPDATE name='MeterUpdate#1', meternumber='2012345';
关于mysql - SQL SERVER 2012 如果存在和如果不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17411108/