2010-07-23 2 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; 

은 내가 가 SQL 오류의 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 Workbench가 이것을 확인하지 않는 이유는 저 밖에 있습니다. : – eaj

+6

MySQL Workbench는 MySQL 오류를 예방/설명하는데 매우 열악한 업무를 수행합니다 ... –

48

이와 같은 오류의 경우 'perror'로 자세한 정보를 찾을 수 있습니다. 즉

shell $ perror 121 

MySQL의 오류 코드 121 : 중복 쓰기에 키 또는
Win32 오류 코드 (121)를 업데이트 : 세마포 제한 시간이 만료되었습니다.

+4

Windows 컴퓨터를 사용하지 않는 한 :-( –

+1

감사합니다. – hgolov

관련 문제