programing

MySQL - 하위 행을 추가하거나 업데이트할 수 없습니다.

magicmemo 2023. 7. 25. 20:50
반응형

MySQL - 하위 행을 추가하거나 업데이트할 수 없습니다.

mysql Ver 15.1 readline 5.2를 사용하여 debian-linux-gnu(x86_64)용 10.1.44-MariaDB 배포

ERROR 1452 (23000) at line 8613: Cannot add or update a child row: a foreign key constraint fails

8613호선:INSERT INTO puffle_item (id, parent_id, name, type, play_external, cost, quantity, member, food_effect, rest_effect, play_effect, clean_effect) VALUES

표는 다음을 의미합니다.

DROP TABLE IF EXISTS puffle_item;
CREATE TABLE puffle_item (
  id INT NOT NULL,
  parent_id INT NOT NULL,
  name VARCHAR(50) NOT NULL DEFAULT '',
  type VARCHAR(10) NOT NULL DEFAULT 'care',
  play_external VARCHAR (10) NOT NULL DEFAULT 'none',
  cost INT NOT NULL DEFAULT 0,
  quantity SMALLINT NOT NULL DEFAULT 1,
  member BOOLEAN NOT NULL DEFAULT FALSE,
  food_effect SMALLINT NOT NULL DEFAULT 0,
  rest_effect SMALLINT NOT NULL DEFAULT 0,
  play_effect SMALLINT NOT NULL DEFAULT 0,
  clean_effect SMALLINT NOT NULL DEFAULT 0,
  PRIMARY KEY (id),
  CONSTRAINT puffle_item_ibfk_1 FOREIGN KEY (parent_id) REFERENCES puffle_item (id) ON DELETE CASCADE ON UPDATE CASCADE
);

테이블에 넣으려는 항목의 예:(1, 1, 'Brush', 'care', 'none', 0, 1, FALSE, -2, -2, 5, 5),

도와드릴까요?

해당 행을 입력하려고 할 때 상위 ID 1이 없으므로 제약 조건을 사용하지 않도록 설정해야 합니다.

CREATE TABLE puffle_item (
  id INT NOT NULL,
  parent_id INT NOT NULL,
  name VARCHAR(50) NOT NULL DEFAULT '',
  type VARCHAR(10) NOT NULL DEFAULT 'care',
  play_external VARCHAR (10) NOT NULL DEFAULT 'none',
  cost INT NOT NULL DEFAULT 0,
  quantity SMALLINT NOT NULL DEFAULT 1,
  member BOOLEAN NOT NULL DEFAULT FALSE,
  food_effect SMALLINT NOT NULL DEFAULT 0,
  rest_effect SMALLINT NOT NULL DEFAULT 0,
  play_effect SMALLINT NOT NULL DEFAULT 0,
  clean_effect SMALLINT NOT NULL DEFAULT 0,
  PRIMARY KEY (id),
  CONSTRAINT puffle_item_ibfk_1 FOREIGN KEY (parent_id) REFERENCES puffle_item (id) ON DELETE CASCADE ON UPDATE CASCADE
);
SET FOREIGN_KEY_CHECKS=0;

INSERT INTO puffle_item (id, parent_id, name, type, play_external, cost, quantity, member, food_effect, rest_effect, play_effect, clean_effect) VALUES (1, 1, 'Brush', 'care', 'none', 0, 1, FALSE, -2, -2, 5, 5);

SET FOREIGN_KEY_CHECKS=1;
select * from puffle_item
id | parent_id | 이름 | 유형 | 놀이 _ 외부 | 비용 | 수량 | 회원 | 음식 _ 효과 | 휴식 _ 효과 | 놀이 _ 효과 | 클린 _ 효과-: | --------: | :---- | :--- | :------------ | ---: | -------: | -----: | ----------: | ----------: | ----------: | -----------:1 | 1 | 브러시 | 관리 | 없음 | 0 | 1 | 0 | -2 | -2 | 5 | 5

db<>여기로 이동

언급URL : https://stackoverflow.com/questions/62639138/mysql-cannot-add-or-update-a-child-row

반응형