0

sqlite で特定のテーブルにデータを自動的に挿入するプログラムを作成しようとしています。私のテーブルは次のようになります。

ここに画像の説明を入力

たとえば、新しい値data5を col3 に入力したい場合、使用したコマンドは次のとおりです。

INSERT INTO exam_table (col3) VALUES ('data5')

その後、テーブルは次のようになります。

ここに画像の説明を入力

問題は、新しい値を別の列に挿入したい場合、たとえばcol1、どのコマンドを使用すれば、新しい値col1が null の最初の行 (行 2) に挿入されるのでしょうか?

注意: SQL コマンド以外の SQL コマンドを提供してください。UPDATE exam_table SET col1='data6' WHERE col3='data4'これは、テーブルがどのように見えるかがわからないことが想定されているため、「col3」行 2 に「data4」が含まれていることがわからないためです。

4

1 に答える 1

2

リレーショナル データベースがアプリケーションに適していない場合や、行に明示的に順序付けを行う必要がある場合があります。

あなたが尋ねる:

null である「col1」の最初の行に新しい値が挿入されるようにするには、どのコマンドを使用すればよいですか

...しかし、SQLには、クエリによって課された順序以外の行順序の真の概念はありません。スキーマを ORDER BY に定義しない限り、col1 が NULL の「最初の行」はありません。

次に、 「テーブルがどのように見えるかを知らないと想定されているため、'col3' 行 2 に 'data4' が含まれていることを知らない」ため、UPDATE コマンドを提供しないように依頼します。

しかし、それが SQL のしくみです。それは、順序付けされていないタプルのセット (重複は許可されています) として物事を考えます。「NULLフィールドに値を挿入する」のではなく、行全体を挿入するか、個々のフィールドを更新します。

順序付けを課してから、そこから作業する必要があります — そうです、それは UPDATE コマンドまたは類似のものになります — または、SQL バックエンドを削除して、データ オントロジーの別の考え方を持つものを使用します。

于 2013-05-10T16:52:13.007 に答える