Почему Navicat пишет ключ вместо внешнего ключа в CREATE TABLE?

0
CREATE TABLE IF NOT EXISTS `trl_bill` (
  `bill_id` int(11) NOT NULL AUTO_INCREMENT,
  `fee` double NOT NULL DEFAULT '0',
  `begin_date` date NOT NULL,
  `end_date` date NOT NULL,
  `is_paid` tinyint(4) NOT NULL DEFAULT '0',
  `request_id` int(11) NOT NULL,
  PRIMARY KEY (`bill_id`),
  KEY `request_id` (`request_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED AUTO_INCREMENT=1 ;

Это моя таблица sql, я использую navicat для разработки моей базы данных, почему она пишет KEY вместо FOREIGN KEY?

Теги:

1 ответ

0
Лучший ответ

Ключевое слово KEY является синонимом INDEX в MySQL. У вас нет ограничение внешнего ключа, указанное в этом CREATE TABLE.

Синтаксис CREATE TABLE:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    { LIKE old_tbl_name | (LIKE old_tbl_name) }
create_definition:
    col_name column_definition
  | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
      [index_option] ...
  | {INDEX|KEY} [index_name] [index_type] (index_col_name,...)
      [index_option] ...
  | [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY]
      [index_name] [index_type] (index_col_name,...)
      [index_option] ...
  | {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...)
      [index_option] ...
  | [CONSTRAINT [symbol]] FOREIGN KEY
      [index_name] (index_col_name,...) reference_definition
  | CHECK (expr)
  • 0
    Ох, спасибо. Ваш выстрел - цель.
  • 0
    @kamil: Я рад, что это помогло. Вы можете пометить ответ как принятый, если он был полезным. Вы можете сделать это, нажав на зеленую галочку слева от ответа :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню