Pregunta

Usando la herramienta Mysqladmin, trato de crear una tabla. La herramienta genera la declaración SQL, y luego replorts un "no se puede crear la tabla" con ninguna otra pista sobre qué error es!

Aquí está:

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;

Alguien puede ayudar?

¿Fue útil?

Solución

El CREATE TABLE funciona para mí si omito las referencias clave externa:

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`)
)

... así que me siento inclinado a creer que C121535_vubridge.MEMBERS no existe ya. necesidades C121535_vubridge.MEMBERS a crearse antes de TABLE para los productos se ejecuta Crear tabla.

Otros consejos

Sólo se dividió la mesa y tratar de crear una parte en el momento. De esta manera usted debe ser capaz de identificar una sola línea que no logra sucesivamente.

hacer la nota en el manual de referencia que si se le da una subcláusula símbolo de la cláusula de la restricción (en su caso, las cadenas de respaldo citado antes FOREIGN KEY en cada cláusula, FK_prAuthor y FK_Sponsor) tienen que ser únicos sobre la base de datos. ¿Son ellos? Si no es así, que el símbolo puede ser omitido y InnoDB asignará automáticamente a continuación.

Del mismo modo, las mesas de sus FKs hacen referencia puede que no tienen la estructura que esto crea Espera comunicado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top