[解決済み] Android SQLite: 挿入/置換メソッドにおけるnullColumnHackパラメータ
2023-01-28 23:13:23
質問
Android SDKには、SQLiteでデータを操作するための便利なメソッドがいくつかあります。 しかし
挿入
と
を置き換える
メソッドでは、いくつかの
nullColumnHack
パラメータを使いますが、その使い方はよくわかりません。
ドキュメントでは以下のように説明されていますが、テーブルが複数のカラムを持ち、そのカラムで
NULL
? 私は本当にそれを得ることはありません:/。
SQL では、完全に空の行を挿入することはできません。したがって、initialValues が空の場合、この列 [ /row for replace ]が明示的に割り当てられます。
NULL
の値が割り当てられます。
どのように解決するのですか?
という名前のテーブルがあるとします。
foo
という名前のテーブルがあり、すべてのカラムが
NULL
の値を許すか、デフォルトを持つ。
いくつかのSQLの実装では、これは有効なSQLとなるでしょう。
INSERT INTO foo;
これはSQLiteでは有効ではありません。少なくとも1つのカラムが指定されていなければなりません。
INSERT INTO foo (somecol) VALUES (NULL);
したがって、空の
ContentValues
に
insert()
を割り当てるために、Android と SQLite は安全なカラムを必要とします。
NULL
を割り当てるための安全なカラムが必要です。そのような列がいくつかある場合は、サイコロを振る、マジック 8 ボール(TM)、コイン投げ、同僚投げなど、好みの選択メカニズムで 1 つを選びます。
個人的には、空の
ContentValues
を
insert()
に変更したいのですが、聞かれなかったので... :-)
関連
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] SQLiteでテーブルが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] SQLite - UPSERT *not* INSERT or REPLACE
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み] 文字サイズとアンドロイドの画面サイズの違い
-
[解決済み] FragmentPagerAdapterのgetItemが呼び出されない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 設定ページに移動せずに位置情報サービスをオンにする
-
[解決済み] Android Webview - キャッシュを完全に削除する
-
[解決済み] プログラム的に電話をかけるには?
-
[解決済み] Eclipseでのandroid:configChangesでのAdmobエラー
-
[解決済み] handler.postDelayed()を停止する。
-
[解決済み] TabLayoutに対応したandroidデザインでタブテキストのフォントを変更する
-
[解決済み] Androidアプリケーションのヒープサイズを大きくするには?
-
[解決済み] EditTextの右側のDrawableにonClickListenerを設定する [重複] [重複
-
[解決済み] google-services.jsonって実際何してるの?
-
[解決済み] Google Play ストア内部テストのロールアウトが開始できない