lỗi sql errno: 121


79
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;

tôi có lỗi

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

bất cứ ai có thể cho tôi biết đó là một trong những vấn đề?

Câu trả lời:


146

Bạn có hai ràng buộc được gọi company.cid_FK. Đổi tên một.


8
Tại sao MySQL Workbench không kiểm tra điều này nằm ngoài tôi. :(
eaj

48

Đối với những lỗi như thế này, bạn có thể tìm thêm thông tin với 'perror'. I E

shell $ perror 121

Mã lỗi MySQL 121: Khóa trùng lặp khi ghi hoặc cập nhật
Mã lỗi Win32 121: Khoảng thời gian chờ semaphore đã hết hạn.


4
Trừ khi bạn đang sử dụng máy Windows. :-(
Lawrence Dol

-1

Tôi gặp lỗi tương tự Mã lỗi MySQL 121: Khóa trùng lặp khi ghi hoặc cập nhật.

mặc dù tôi đã xóa bảng khỏi cơ sở dữ liệu của mình để tạo lại nhưng tôi không thể vì vậy tôi đã tạo lại bảng với các ràng buộc khác nhau.

Tôi thấy rằng hạn chế cũ vẫn còn đó.


2
Đây có phải là một giải pháp hay bạn đang nói rằng bạn đang gặp phải trường hợp tương tự?
Scratte
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.