

SQLiteにはREPLACE文がありますが、これを使うと、例えばn,c1,c2,c3フィールドがあるデータsampleに対して「replace into sample (n,c2) values (1,1)」を実行すると、c1とc3はnull値になってしまいます。
一部のSQLデータベースで用意されている「INSERT OR UPDATE」のように、行が存在すれば対象のフィールドのみを書き換え(それ以外のフィールドの内容は維持)、存在しなければ行を追加する構文を作ることは可能でしょうか。
No.1ベストアンサー
- 回答日時:
SQLiteでは、insert or replace しかないけど select文からの入力とサブクエリは使えるから
replace into [table_name] (n,c1,c2,c3)
select x.n, org.c1, x.c2, org.c3
from (select 1 as n, 1 as c2 ) as x
left join [table_name] as org on x.n=org.n ;
n がprimary key または uniqueの前提で1行書き換えまたは、新規挿入。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
~以上~未満の指定の方法
-
CONCAT以外で文字列連結できますか
-
日本語のエイリアスは" "で囲...
-
別のDB(Table)からの複数行の...
-
同じサーバーで、異なるデータ...
-
Unionした最後にGROUP BYを追加...
-
【SQL文】Insert into文で文法...
-
[MySQL] 1対多のリレーションで...
-
DB設計について
-
MySQLにてCOUNTした値を更にCOUNT
-
SQL xx件目からxx件目まで...
-
レコード数が増えすぎた場合の対処
-
カラム名でseqとidではどちらが...
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
SQLで特定の項目の重複のみを排...
-
Outlook 送受信エラー
-
同一のユーザー、同一商品のと...
-
英語ができる方、問題をお願い...
-
UPDATE文のWHERE条件に他のテー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日本語のエイリアスは" "で囲...
-
集計結果を検索対象にするには?
-
~以上~未満の指定の方法
-
コマンドプロンプトでデータを...
-
複数のフィールドからデータを...
-
select * from rooms where rty...
-
【MYSQL】フィールド名の変更(...
-
アクセスのselect文
-
SQLiteでINSERT OR UPDATE
-
連番の取得
-
SQLの結果を更に絞り込む
-
フィルターかけた後、重複を除...
-
差し込み後、元データを変更し...
-
外部参照してるキーを主キーに...
-
エクセルで最後の文字だけ置き...
-
SQLで特定の項目の重複のみを排...
-
SELECT 文 GROUP での1件目を...
-
Outlook 送受信エラー
-
エクセルの関数について教えて...
-
for whichの使い方
おすすめ情報