Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql innodb:tabel deskripsi tidak menunjukkan referensi kolom, apa yang menunjukkannya?

Saat pengujian, kunci asing tidak dibuat di mesin saya menggunakan sintaks ini:

CREATE TABLE bugs (
  ...
  reported_by       VARCHAR(100) REFERENCES accounts(account_name),
  ...
 ) ENGINE = INNODB;

Tapi itulah saat saya menggunakan pernyataan buat ini:

CREATE TABLE bugs (
  ...
  reported_by       VARCHAR(100),
  ...
  FOREIGN KEY (reported_by) REFERENCES accounts(account_name)
 ) ENGINE = INNODB;

Cara mudah untuk melihat apakah kunci asing ada di tabel adalah:

show create table bugs_products

Atau Anda dapat menanyakan skema informasi:

select
  table_schema
, table_name
, column_name
, referenced_table_schema
, referenced_table_name
, referenced_column_name
from information_schema.KEY_COLUMN_USAGE
where table_name = 'bugs'

Periksa juga apakah Anda menggunakan mesin penyimpanan InnoDB. Mesin MyISAM tidak mendukung kunci asing. Anda dapat menemukan mesin seperti:

select table_schema, table_name, engine
from information_schema.TABLES
where table_name = 'bugs'

Jika Anda mencoba membuat kunci asing pada tabel MyISAM, maka referensi akan dibuang secara diam-diam dan berpura-pura berhasil.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konversi UUID ke/dari biner di Node

  2. Pengantar Sederhana untuk Menggunakan MySQL di Terminal Linux

  3. PDF dibuat dengan FPDF dan cara menyimpan dan mengambil pdf

  4. Pencarian beberapa kata kunci

  5. Panggil ke prosedur tersimpan, ketika nama prosedur dalam variabel di mysql