Anda dapat menambahkan kolom yang dihasilkan ke tabel yang ada di SQLite dengan menggunakan ALTER TABLE
pernyataan.
Implementasi SQLite dari ALTER TABLE
pernyataan sangat terbatas, tetapi memungkinkan Anda untuk menambahkan kolom – termasuk kolom yang dihasilkan.
Kolom yang dihasilkan (juga dikenal sebagai "kolom yang dihitung") adalah kolom yang mendapatkan nilainya dari ekspresi yang menghitung nilai dari kolom lain.
Contoh
Berikut adalah contoh sederhana untuk didemonstrasikan.
Tabel Asli
Pertama-tama mari kita buat tabel tanpa kolom yang dihasilkan dan masukkan beberapa data:
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;
Hasil:
Id FirstName LastName ---------- ---------- ---------- 1 Barney Rubble 2 Peter Griffin 3 Fritz The Cat
Tambahkan Kolom yang Dihasilkan
Sekarang mari tambahkan kolom yang dihasilkan pada tabel itu.
ALTER TABLE Person ADD COLUMN
FullName GENERATED ALWAYS AS (FirstName || ' ' || LastName);
SELECT * FROM Person;
Hasil:
Id FirstName LastName FullName ---------- ---------- ---------- ------------- 1 Barney Rubble Barney Rubble 2 Peter Griffin Peter Griffin 3 Fritz The Cat Fritz The Cat
Kolom yang dihasilkan bernama FullName telah ditambahkan. Kolom ini menggabungkan FirstName kolom dengan Nama Belakang kolom, dan oleh karena itu siapa pun yang menanyakan tabel ini tidak perlu lagi melakukan penggabungan itu sendiri dalam kueri mereka.
Memperbarui Data
Anda tidak dapat memperbarui data di kolom yang dihasilkan secara langsung. Anda perlu memperbarui data di kolom dasar yang berkontribusi pada nilainya.
Jadi jika kami ingin memperbarui Barney Rubble ke Betty Rubble , kita perlu memperbarui FirstName kolom.
UPDATE Person
SET FirstName = 'Betty'
WHERE Id = 1;
SELECT * FROM Person;
Hasil:
Id FirstName LastName FullName ---------- ---------- ---------- --------------- 1 Betty Rubble Betty Rubble 2 Peter Griffin Peter Griffin 3 Fritz The Cat Fritz The Cat