2

以下のSQLステートメントがあります

INSERT INTO my_counts (type,code,count) SELECT type,id ,1 from my_data WHERE user_id=10
ON DUPLICATE KEY UPDATE count = count + 1; 

ここでtype,codeは複合主キーです。

挿入されたレコードの数と、個別に更新されたレコードの数を確認する方法を教えてください。

SELECT ROW_COUNT()が影響を受ける行 (更新用に 2、挿入用に 1 ) を与えることはわかっています。しかし、個別に調べる方法

1) the number of rows updated 
2) the number of rows inserted

ご協力いただきありがとうございます

よろしく

キラン

4

1 に答える 1

2

診断情報からこれを取得する良い方法がわかりません。

いずれにせよ、編集したばかり の行のみがテーブルに含まれるように (またはクエリのみが実行されるように) 制御したと仮定するとINSERT、これは事後に簡単に取得できます。

SELECT COUNT(*) as Inserted, SUM(count - 1) as Updated
FROM my_counts;

(私の SQLFiddle のに含まれているように、これらの数値は実際にはベース データから予測できることに注意してください)。

于 2012-08-13T22:51:42.243 に答える