저는 초보자이며, 간단한 질문이 있습니다. 내 스키마 (서점)에 3 개의 테이블이 있습니다. 나는 그들 사이의 관계를 갖고 싶다. 내 테이블 : books (book_id, book_name, book_entity), customer (customer_id, customer_name), orders (book_id, customer_id, quantity)mysql 워크 벤치의 외래 키
외래 키 이름 (book_id 및 CUSTOMER_ID), 참조 테이블 ( '서점', '책' '서점', '고객')
: 나는 다음과 같은 주문 테이블의 외래 키를 설정처음에 나는 고객 테이블에 데이터를 삽입하려고 할 때 나는 오류 다음 한 책 테이블을 작성하지만 :
ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`bookshop`.`customer`, CONSTRAINT `customer_id` FOREIGN KEY (`customer_id`) REFERENCES `order` (`customer_id`) ON DELETE NO ACTION ON UPDATE NO ACTION)
SQL Statement:
INSERT INTO `bookshop`.`customer` (`customer_id`, `customer_name`, `customer_address`) VALUES (2, 'helen', 'newyork')
내가 무엇을 할 것인가?
내 코드 :
-- Table `bookshop`.`books`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `bookshop`.`books` (
`book_id` INT NOT NULL ,
`book_name` VARCHAR(45) NOT NULL ,
`book_price` DECIMAL NOT NULL ,
`book_entity` INT NOT NULL ,
PRIMARY KEY (`book_id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `bookshop`.`customer`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `bookshop`.`customer` (
`customer_id` INT NOT NULL ,
`customer_name` VARCHAR(45) NOT NULL ,
`customer_address` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`customer_id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `bookshop`.`orders`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `bookshop`.`orders` (
`book_id` INT NOT NULL ,
`customer_id` INT NOT NULL ,
`quantity` INT NOT NULL ,
INDEX `book_id` (`book_id` ASC) ,
INDEX `customer_id` (`customer_id` ASC) ,
CONSTRAINT `book_id`
FOREIGN KEY (`book_id`)
REFERENCES `bookshop`.`books` (`book_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `customer_id`
FOREIGN KEY (`customer_id`)
REFERENCES `bookshop`.`customer` (`customer_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT)
ENGINE = InnoDB;
이것은 기본 테이블에'customer_id'가있는 주 테이블에 상응하는'customer_id'가 없기 때문입니다. –
__foreign 키 이름 참조 테이블 book_id 'bookshop', 'books'customer_id 'bookshop', 'customer'__는별로 의미가 없습니다. goreign 키를 어떻게 정의했는지 다시 작성하십시오. –
나는 내 테이블 사이의 관계를 원하고 있습니다. 외래 키 : 내 주문 테이블의 customer_id 및 book_id (기본 키도 있음) – samira