MERGE INTO USERS U USING (SELECT NAME FROM USERS WHERE NAME='222222222222222') C ON C.NAME=U.NAME
WHEN NOT MATCHED THEN
INSERT (NAME)
VALUES ('222222222222222')
WHEN MATCHED THEN
UPDATE SET NAME='222222222222222';
执行的时候不会插入,求指点
------解决方案--------------------
你都用同一个表来跟新有什么意思
既然USERS都有 NAME='222222222222222'的记录了
那当然不会插入了
如果USERS 没 NAME='222222222222222'
那USING (SELECT NAME FROM USERS WHERE NAME='222222222222222')根本就没数据
------解决方案--------------------
同一个表,必须的,都做更新
------解决方案--------------------
MERGE用法是在USERS 没有与name相同的的记录时,进行插入操作,
当发现有相同的name时,对其进行更新操作,
而你上面的语法存在错误:SELECT NAME FROM USERS WHERE NAME='222222222222222'
当表中没有数据时,SELECT NAME FROM USERS WHERE NAME='222222222222222'结果集中没有数据,
编译都通不过。
------解决方案--------------------
用merge 语句时,匹配的字段和要更新的字段不能是同一个字段。
对于楼主的问题,我想问下,你这样对同一张进行的操作,用意是什么?