Antarmuka baris perintah SQLite memiliki perintah titik praktis yang disebut .mode
, yang memungkinkan Anda mengubah cara hasil kueri diformat.
Salah satu nilai yang dapat Anda gunakan dengan perintah ini adalah insert
. Menggunakan nilai ini menghasilkan semua hasil kueri berikutnya yang diformat sebagai SQL INSERT
pernyataan.
Pengaturan Default SQLite
Pertama, seperti inilah hasil normal Anda (dengan asumsi Anda menggunakan setelan default SQLite).
SELECT * FROM Products;
Hasil:
1|Widget Holder|139.5 2|Widget Opener|89.7 3|Widgets - 6 Pack|374.2 4|Blue Widget|63.0
Hasil sebagai Pernyataan INSERT
Nah berikut ini cara mengubahnya agar hasilnya diformat sebagai SQL INSERT
pernyataan:
.mode insert Products2
Pernyataan itu menentukan Produk2 sebagai tabel tempat data akan dimasukkan. Anda perlu menentukan nama tabel yang ingin Anda masukkan datanya.
Sekarang ketika saya menjalankan SELECT
. sebelumnya pernyataan lagi, mereka output sebagai INSERT
pernyataan.
SELECT * FROM Products;
Hasil:
INSERT INTO Products2 VALUES(1,'Widget Holder',139.49999999999999999); INSERT INTO Products2 VALUES(2,'Widget Opener',89.700000000000002838); INSERT INTO Products2 VALUES(3,'Widgets - 6 Pack',374.19999999999998862); INSERT INTO Products2 VALUES(4,'Blue Widget',63.000000000000000001);
Simpan Format ini
Saat Anda membuka SQLite di jendela terminal baru, Anda akan kehilangan pengaturan ini. Dengan kata lain, SQLite akan kembali ke format output default (yang merupakan daftar yang dipisahkan pipa).
Namun, Anda sebenarnya dapat menentukan pengaturan default Anda sendiri dengan menyimpan pengaturan di atas ke dalam file teks.
Untuk melakukannya, masukkan yang berikut ini ke dalam file teks:
.mode insert NewTable
Kemudian simpan file tersebut sebagai .sqliterc
di direktori home/(pengguna) Anda.
Sekarang ketika Anda terhubung ke SQLite di jendela terminal baru, itu akan menggunakan pengaturan tersebut alih-alih pengaturan default SQLite.
Contoh ini menggunakan Tabel Baru sebagai tabel target tetapi Anda dapat menggunakan apa pun yang Anda inginkan.
Jelas, satu-satunya masalah dengan melakukan ini adalah Anda perlu mengubah nama tabel jika berubah. Dan jika Anda perlu repot melakukan itu, mungkin lebih mudah untuk mengubahnya dengan cepat dengan .mode insert NewTable
(Alih-alih perlu mencari/mengganti nama tabel). Bagaimanapun, ini adalah opsi jika Anda membutuhkannya.