メーターが存在するかどうかを確認してから更新を行うクエリを作成しようとしていますが、月次データ テーブルへの挿入は行われません。問題は、構文について混乱していて、その方法がわからないことです!
これがデータベースの設計です。メーター番号が 2012345 の場合、どうすればよいですか? ありがとうございました
メーターが存在するかどうかを確認してから更新を行うクエリを作成しようとしていますが、月次データ テーブルへの挿入は行われません。問題は、構文について混乱していて、その方法がわからないことです!
これがデータベースの設計です。メーター番号が 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';