Perché questo MySQL Crea tabella dichiarazione fallire?
-
30-09-2019 - |
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?
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.