Почему этот файл MySQL создает отказ от таблицы?

StackOverflow https://stackoverflow.com/questions/4340360

  •  30-09-2019
  •  | 
  •  

Вопрос

Используя MySQLADMIN Tool, я пытаюсь создать таблицу. Инструмент генерирует оператор SQL, а затем переносит «Невозможно создать таблицу» без другой подсказки на какой ошибке это!

Вот :

CREATE TABLE `C121535_vubridge`.`Products` (
  `pr_ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `pr_Name` VARCHAR(45) NOT NULL,
  `pr_Type` VARCHAR(2) NOT NULL COMMENT 'H=Hand Series V=VuBridge software E=Event Subs S=Sponsoring',
  `pr_AuthorID` INTEGER UNSIGNED COMMENT '= m_ID (for Bridge Hand Series',
  `pr_SponsorID` INTEGER UNSIGNED NOT NULL,
  `pr_DateCreation` DATETIME NOT NULL,
  `pr_Price` FLOAT NOT NULL,
  `pr_DescriptionText` TEXT,
  `pr_Description` VARCHAR(245),
  PRIMARY KEY (`pr_ID`),
  CONSTRAINT `FK_prAuthor` FOREIGN KEY `FK_prAuthor` (`pr_AuthorID`)
    REFERENCES `Members` (`m_ID`)
    ON DELETE SET NULL
    ON UPDATE NO ACTION,
  CONSTRAINT `FK_Sponsor` FOREIGN KEY `FK_Sponsor` (`pr_SponsorID`)
    REFERENCES `Members` (`m_ID`)
    ON DELETE SET NULL
    ON UPDATE NO ACTION
) ENGINE = InnoDB;

Может кто-нибудь помочь?

Это было полезно?

Решение

Таблица создания работает для меня, если я опускаю ссылки на иностранные ключи:

CREATE TABLE `Products` (
 `pr_ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 `pr_Name` VARCHAR(45) NOT NULL,
 `pr_Type` VARCHAR(2) NOT NULL COMMENT 'H=Hand Series V=VuBridge software E=Event Subs S=Sponsoring',
 `pr_AuthorID` INTEGER UNSIGNED COMMENT '= m_ID (for Bridge Hand Series',
 `pr_SponsorID` INTEGER UNSIGNED NOT NULL,
 `pr_DateCreation` DATETIME NOT NULL,
 `pr_Price` FLOAT NOT NULL,
 `pr_DescriptionText` TEXT,
 `pr_Description` VARCHAR(245),
 PRIMARY KEY (`pr_ID`)
)

... так что я склонен верить, что C121535_vubridge.MEMBERS еще не существует. C121535_vubridge.MEMBERS Необходимо создать до того, как запускается оператор создания таблицы для таблицы продуктов.

Другие советы

Просто разделить таблицу создания и попробуйте одну часть в то время. Таким образом, вы сможете определить одну строку, на которой она не удается.

Я отмечаю, что в справочном руководстве, что если символ подпункта приведен для пункта ограничения (в вашем случае, цитируемые ссылками перед внешним ключом в каждом пункте, FK_prAuthor а также FK_Sponsor) должны быть уникальными по базе данных. Они? Если нет, этот символ может быть опущен, и InnoDB присваивается автоматически.

Аналогичным образом, таблицы ваши FKS относятся к тому, не могут иметь структуру, которая ожидает, что это создание утверждает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top