Frage

Mit mysqladmin Werkzeug, ich versuche, eine Tabelle zu erstellen. Das Tool generiert die SQL-Anweisung, und dann replorts eine „Kann Tabelle nicht erstellen“ mit keinem anderen Hinweis auf das, was Fehler es ist!

Hier ist sie:

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;

Kann jemand helfen?

War es hilfreich?

Lösung

Die CREATE TABLE funktioniert bei mir, wenn ich die Fremdschlüssel-Referenzen auslassen:

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

... so geneigt, dass ich C121535_vubridge.MEMBERS zu glauben, noch nicht vorhanden ist. C121535_vubridge.MEMBERS Bedürfnisse erstellt werden, bevor die CREATE TABLE-Anweisung für die Tabelle Product ausgeführt wird.

Andere Tipps

aufgeteilt nur auf die Tabelle zu erstellen und versuchen, zu der Zeit einen Teil. Auf diese Weise sollten Sie eine einzige Zeile identifizieren können, dass es nicht auf.

ich Notiz im Referenzhandbuch, dass, wenn ein Symbol Subklausel für die CONSTRAINT-Klausel angegeben ist (in Ihrem Fall die Back-Strings in Anführungszeichen vor Fremdschlüssel in jeder Klausel, FK_prAuthor und FK_Sponsor) haben über die Datenbank eindeutig sein. Sind sie? Wenn nicht, kann das Symbol weggelassen werden und InnoDB wird zuweisen dann automatisch.

Ähnlich sind die Tabellen Ihre FKs siehe kann die Struktur nicht haben, dass diese Aussage erwartet erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top