1

主キーではなく、何らかの条件でテーブルを更新する必要があります。

私は次のようなことをしようとしています

p_price set price = :price where p_id = :pid and c_id = :cid where p_id = :pid and c_id = :cid の行がない場合、p_price (p_id, c_id, price) value (1,2 ,3)

それはsqlコマンドで可能ですか?

注: 主キーがないため、ON DUPLICATE KEY は使用できません。

4

1 に答える 1

4

実際には、主キーを持つ必要はありません。少なくとも一意の制約のみが必要です。UNIQUEこの制約を追加

ALTER TABLE p_price ADD CONSTRAINT tb_unique UNIQUE(p_id , c_id);

このステートメントを実行し、

insert into p_price (p_id, c_id, price) 
value (1,2,3)
ON DUPLICATE KEY 
UPDATE price = :price

最初に必要な値を変更するだけです。

于 2013-04-22T12:17:19.723 に答える