

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ランキング
-
日本語のエイリアスは" "で囲...
-
コマンドプロンプトでデータを...
-
差し込み後、元データを変更し...
-
SQLで特定の項目の重複のみを排...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
SELECT 文 GROUP での1件目を...
-
外部参照してるキーを主キーに...
-
カーソル0件の時にエラーを発生...
-
エクセルの関数について教えて...
-
【VB.NET】日付型の列にNULLを...
-
JavaScriptの定数名が取り消し...
-
selectした大量データをinsert...
-
UPDATE文のWHERE条件に他のテー...
-
1日に1人がこなせるプログラム...
-
EXISTSを使ったDELETE文
-
INSERT文でフィールドの1つだ...
-
SQLServerで文字列の末尾からあ...
-
SQL Date型の列から年月だけを...
-
英文を訳して下さい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日本語のエイリアスは" "で囲...
-
コマンドプロンプトでデータを...
-
~以上~未満の指定の方法
-
CSVファイルをMYSQLにインポート
-
SQLの副問い合わせについて
-
SQLの結果を更に絞り込む
-
CONCAT以外で文字列連結できますか
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
SQLで特定の項目の重複のみを排...
-
SELECT 文 GROUP での1件目を...
-
EXISTSを使ったDELETE文
-
INSERT文でフィールドの1つだ...
-
外部参照してるキーを主キーに...
-
for whichの使い方
-
1日に1人がこなせるプログラム...
-
カーソル0件の時にエラーを発生...
-
重複していないレコードの抽出...
おすすめ情報