MySQL Foreign Key 바보짓
DROP TABLE IF EXISTS testChild;
DROP TABLE IF EXISTS testParent;
CREATE TABLE testParent (
id INT NOT NULL,
PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE testChild (
id INT NOT NULL,
parentId INT DEFAULT NULL,
PRIMARY KEY(id),
KEY parentId(parentId),
CONSTRAINT testFKey FOREIGN KEY(parentId) REFERENCES testParent(id)
ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO testParent VALUES(1);
INSERT INTO testChild VALUES(1, 1);
ALTER TABLE testChild MODIFY parentId INT NOT NULL;
DELETE FROM testParent WHERE id = 1;
MySQL 5.0에서는 마지막 DELETE문을 실행할때 mysql이 crash 되고 4.1에서는 testChild 테이블에 (1, 0) 값이 남게 돼 foreign key constraint가 깨지게 된다. 아놔 이자식 때문에 반나절을 삽질했;;
'컴퓨터 얘기 > 프로그래밍' 카테고리의 다른 글
| Read Me 플러그인 (3) | 2007/12/07 |
|---|---|
| 드림위버와 이별하기 (5) | 2007/11/28 |
| MySQL Foreign Key 바보짓 (6) | 2007/04/09 |
| TinyMCE 플러그인 - WikiExporter (5) | 2007/02/07 |
| 멜론 앨범 커버 다운로더 (17) | 2007/02/04 |
| Crizin.HTTPRequest.php (8) | 2007/02/03 |
push.zip