Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql innodb:таблица за описание не показва препратки към колони, какво ги показва?

При тестване външните ключове не се създават на моята машина с помощта на този синтаксис:

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

Но те са, когато използвам този израз за създаване:

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

Лесен начин да видите дали съществуват външни ключове в таблица е:

show create table bugs_products

Или можете да направите заявка за информационната схема:

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'

Също така проверете дали използвате механизма за съхранение на InnoDB. Двигателят MyISAM не поддържа външни ключове. Можете да намерите двигателя като:

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

Ако се опитате да създадете външен ключ в таблица MyISAM, той безшумно ще изхвърли препратките и ще се преструва, че успява.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на Dropwizard &JDBI за запитване на база данни с множество схеми?

  2. Openshift:Как да получите отдалечен достъп до MySQL?

  3. MySQL двоен главен

  4. Създаване на меню за избор в PHP с избрано по подразбиране от MySQL db

  5. MySQL:Не мога да дам име на таблици в горен регистър на Camel (Паскал)