Domanda

Utilizzando lo strumento mysqladmin, cerco di creare una tabella. Lo strumento genera l'istruzione SQL e quindi replorts "Impossibile creare la tabella" con nessun altro indizio su quale errore si tratta!

Qui è:

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;

Qualcuno può aiutarmi?

È stato utile?

Soluzione

La creazione di opere tavolo per me, se tralascio i riferimenti chiave esterna:

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

... quindi sono propenso a credere che C121535_vubridge.MEMBERS non esiste già. esigenze C121535_vubridge.MEMBERS per essere creati prima l'istruzione CREATE TABLE per i prodotti tabella viene eseguito.

Altri suggerimenti

Proprio contempla la creazione di tavolo e provare una parte in quel momento. In questo modo si dovrebbe essere in grado di identificare una singola linea che non riesce a.

I fare nota nel manuale di riferimento che se una sottoclausola simbolo è dato per la clausola CONSTRAINT (nel tuo caso, le stringhe di back-citato prima FOREIGN KEY in ogni clausola, FK_prAuthor e FK_Sponsor) devono essere univoci sul database. Sono loro? In caso contrario, che il simbolo può essere omesso e InnoDB assegnerà quindi automaticamente.

Allo stesso modo, le tabelle vostri FKS fare riferimento a non può avere la struttura che questo crea aspetta dichiarazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top