2010-07-23 16 views
75
CREATE TABLE `users` (
    `UID` INT UNSIGNED NOT NULL AUTO_INCREMENT , 
    `username` VARCHAR(45) NOT NULL , 
    `password` VARCHAR(100) NULL , 
    `name` VARCHAR(100) NULL , 
    `gender` BIT NULL , 
    `email` VARCHAR(255) NULL , 
    `phone` VARCHAR(30) NOT NULL , 
    `verified` BIT NOT NULL DEFAULT 0 , 
    `time_zone` INT NULL , 
    `time_register` DATETIME NULL , 
    `time_active` DATETIME NULL , 
    PRIMARY KEY (`UID`) , 
    UNIQUE INDEX `username_UNIQUE` (`username` ASC) , 
    INDEX `verified_INDEX` (`verified` ASC)) 
ENGINE = InnoDB 
DEFAULT CHARACTER SET = utf8; 


-- ----------------------------------------------------- 
-- Table `companies` 
-- ----------------------------------------------------- 
CREATE TABLE `companies` (
    `CID` INT UNSIGNED NOT NULL AUTO_INCREMENT , 
    `name` VARCHAR(45) NOT NULL , 
    `address` VARCHAR(100) NULL , 
    `email` VARCHAR(255) NULL , 
    `phone` VARCHAR(30) NULL , 
    `link` TEXT NULL , 
    `image_small` TEXT NULL , 
    `image_large` TEXT NULL , 
    `yahoo` VARCHAR(100) NULL , 
    `linkin` VARCHAR(100) NULL , 
    `twitter` VARCHAR(20) NULL , 
    `description` TEXT NULL , 
    `shoutout` VARCHAR(140) NULL , 
    `verified` BIT NOT NULL DEFAULT 0 , 
    PRIMARY KEY (`CID`) , 
    INDEX `name_INDEX` (`name` ASC) , 
    INDEX `verified_INDEX` (`verified` ASC)) 
ENGINE = InnoDB 
DEFAULT CHARACTER SET = utf8; 

-- ----------------------------------------------------- 
-- Table `products` 
-- ----------------------------------------------------- 
CREATE TABLE `products` (
    `PID` INT UNSIGNED NOT NULL AUTO_INCREMENT , 
    `CID` INT UNSIGNED NOT NULL , 
    `name` VARCHAR(100) NULL , 
    `description` TEXT NULL , 
    `image_small` TEXT NULL , 
    `image_large` TEXT NULL , 
    `tag` VARCHAR(45) NULL , 
    `price` DECIMAL(11,2) NULL , 
    PRIMARY KEY (`PID`) , 
    INDEX `tag_INDEX` (`tag` ASC) , 
    INDEX `company.cid_FK` (`CID` ASC) , 
    CONSTRAINT `company.cid_FK` 
    FOREIGN KEY (`CID`) 
    REFERENCES `companies` (`CID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB 
DEFAULT CHARACTER SET = utf8; 

-- ----------------------------------------------------- 
-- Table `users_companies` 
-- ----------------------------------------------------- 
CREATE TABLE `users_companies` (
    `UID` INT UNSIGNED NOT NULL , 
    `CID` INT UNSIGNED NOT NULL , 
    `role` INT UNSIGNED NULL , 
    PRIMARY KEY (`CID`, `UID`) , 
    INDEX `users.uid_FK` (`UID` ASC) , 
    INDEX `company.cid_FK` (`CID` ASC) , 
    CONSTRAINT `users.uid_FK` 
    FOREIGN KEY (`UID`) 
    REFERENCES `users` (`UID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `company.cid_FK` 
    FOREIGN KEY (`CID`) 
    REFERENCES `companies` (`CID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB 
DEFAULT CHARACTER SET = utf8; 

मैं त्रुटिएसक्यूएल त्रुटि errno: 121

मिला
#1005 - Can't create table 'wew.users_companies' (errno: 121) (<a href="server_engines.php?engine=InnoDB&amp;page=Status&amp;token=3f35afdea97dd11f6b4ec1b669816738">Details...</a>) 

किसी को भी मुझे बता सकते हैं जो एक समस्या है?

उत्तर

142

आपके पास company.cid_FK नामक दो बाधाएं हैं। एक का नाम बदलें।

+7

क्यों MySQL वर्कबेंच यह जांच नहीं करता है कि यह मेरे बाहर है। :( – eaj

+6

MySQL वर्कबेंच MySQL त्रुटियों को रोकने/व्याख्या करने में बहुत खराब काम करता है ... –

48

इस तरह की त्रुटियों के लिए, आप 'perror' के साथ अधिक जानकारी प्राप्त कर सकते हैं। अर्थात

shell $ perror 121 

MySQL त्रुटि कोड 121: लिखने पर डुप्लिकेट कुंजी या
Win32 त्रुटि कोड 121 अद्यतन: सेमाफोर समय समाप्ति की अवधि समाप्त हो गया है।

+4

जब तक कि आप Windows मशीन पर न हों। :-( –

+1

धन्यवाद, यह बेहद सहायक है! – hgolov

संबंधित मुद्दे