SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Kembalikan Daftar Kunci Asing di SQLite

Di SQLite, Anda dapat menggunakan pernyataan PRAGMA untuk mengembalikan daftar kunci asing untuk tabel tertentu.

Sintaks

Sintaksnya seperti ini:

PRAGMA foreign_key_list(table-name);

Dimana table-name adalah nama tabel yang Anda inginkan dari daftar kunci asing.

Contoh

Pertama, mari buat tabel dengan batasan kunci asing.

CREATE TABLE Types( 
    TypeId INTEGER PRIMARY KEY, 
    Type
);

CREATE TABLE Pets( 
    PetId INTEGER PRIMARY KEY, 
    PetName,
    TypeId,
    FOREIGN KEY(TypeId) REFERENCES Types(TypeId)
);

Dalam hal ini saya membuat dua tabel. Hewan peliharaan tabel memiliki batasan kunci asing yang mereferensikan Jenis tabel.

Sekarang saya dapat menggunakan PRAGMA foreign_key_list(table-name) pernyataan untuk mengambil kunci asing itu.

.mode line
PRAGMA foreign_key_list(Pets);

Hasil (menggunakan keluaran vertikal):

      id = 0
      seq = 0
    table = Types
     from = TypeId
       to = TypeId
on_update = NO ACTION
on_delete = NO ACTION
    match = NONE

Pernyataan PRAGMA ini mengembalikan delapan kolom, jadi saya menggunakan .mode line untuk menampilkan hasil secara vertikal. Ini agar Anda tidak perlu menggulir ke samping.

Dalam hal ini hanya ada satu batasan kunci asing di atas meja. Jika ada lebih banyak, mereka akan terdaftar dalam hasil.

Tidak Ada Kunci Asing

Inilah yang terjadi jika saya menjalankan pernyataan PRAGMA yang sama pada tabel tanpa kunci asing.

PRAGMA foreign_key_list(Types);

Hasil (menggunakan keluaran vertikal):

 

(Ini kosong karena tidak ada kunci asing.)

Mengembalikan Pernyataan CREATE TABLE

Pernyataan berikut dapat digunakan untuk mengembalikan kode SQL aktual yang digunakan untuk membuat setiap tabel dengan kunci asing.

.mode column
SELECT sql 
FROM sqlite_master 
WHERE sql LIKE('%REFERENCES%');

Hasil:

CREATE TABLE Pets( 
    PetId INTEGER PRIMARY KEY, 
    PetName,
    TypeId,
    FOREIGN KEY(TypeId) REFERENCES Types(TypeId)
)

Dalam hal ini database hanya berisi satu kunci asing (yang saya buat untuk contoh ini). Jika ada lebih banyak, CREATE TABLE pernyataan semua akan tercantum dalam hasil ini.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Koneksi SQLite bocor meskipun semuanya ditutup

  2. Lampirkan Database di SQLite

  3. Pengecualian Kueri SQLite Kode Kesalahan Sintaks Android Studio 1

  4. SQLiteException:Token tidak dikenal saat membaca dari database

  5. Cara Menginstal SQLite dan SQLite Browser di Ubuntu