sql >> データベース >  >> RDS >> SQLite

生成された列をSQLiteのテーブルに追加する

    ALTER TABLEを使用して、生成された列をSQLiteの既存のテーブルに追加できます。 ステートメント。

    SQLiteによるALTER TABLEの実装 ステートメントは非常に制限されていますが、生成された列を含む列を追加できます。

    生成された列(「計算列」とも呼ばれます)は、他の列から値を計算する式から値を取得する列です。

    簡単な例を次に示します。

    元のテーブル

    まず、生成された列のないテーブルを作成し、いくつかのデータを挿入しましょう:

    CREATE TABLE Person( 
        Id INTEGER PRIMARY KEY, 
        FirstName,
        LastName
    );
    
    INSERT INTO Person VALUES 
        ( 1, 'Barney', 'Rubble' ),
        ( 2, 'Peter', 'Griffin' ),
        ( 3, 'Fritz', 'The Cat' );
    
    SELECT * FROM Person;

    結果:

    Id          FirstName   LastName  
    ----------  ----------  ----------
    1           Barney      Rubble    
    2           Peter       Griffin   
    3           Fritz       The Cat   

    生成された列を追加

    次に、そのテーブルに生成された列を追加しましょう。

    ALTER TABLE Person ADD COLUMN 
      FullName GENERATED ALWAYS AS (FirstName || ' ' || LastName);
    
    SELECT * FROM Person;

    結果:

    Id          FirstName   LastName    FullName     
    ----------  ----------  ----------  -------------
    1           Barney      Rubble      Barney Rubble
    2           Peter       Griffin     Peter Griffin
    3           Fritz       The Cat     Fritz The Cat

    フルネームと呼ばれる生成された列 追加されました。この列は、 FirstNameを連結します の列 列であるため、このテーブルをクエリする人は、クエリでその連結を自分で実行する必要がなくなります。

    データの更新

    生成された列のデータを直接更新することはできません。その値に寄与する基になる列のデータを更新する必要があります。

    したがって、 Barney Rubbleを更新したい場合 ベティ瓦礫 FirstNameを更新する必要があります 列。

    UPDATE Person 
    SET FirstName = 'Betty'
    WHERE Id = 1;
    
    SELECT * FROM Person;

    結果:

    Id          FirstName   LastName    FullName       
    ----------  ----------  ----------  ---------------
    1           Betty       Rubble      Betty Rubble   
    2           Peter       Griffin     Peter Griffin  
    3           Fritz       The Cat     Fritz The Cat  

    1. MariaDB JSON_EXISTS()の説明

    2. SQLiteでデータベースのリストを返す

    3. 別のPostgreSQLCommitfestの管理

    4. JavaプログラムでのSQLインジェクション攻撃を防ぐ