2014-02-06 2 views
0

약하게 연결된 몇 개의 테이블이 있는데 기본 테이블에서 삭제할 때 양쪽 모두에서 삭제 기능을 사용하고 싶습니다.캐스케이드가 작동하지 않습니다.

표 1 :

CREATE TABLE Car(
cID INTEGER, 
color VARCHAR(10), 
primary key (cID) 
); 

CREATE TABLE Tags(
tID INTEGER, 
expDate VARCHAR(10), 
cID INTEGER, 
primary key (tID, cID), 
foreign key (cID) references Car(cID) on delete cascade 
); 

하지만 자동차 테이블에서 차를 삭제할 때, 그것이 태그 테이블에서 삭제되지 않습니다. 테이블 생성 후 제약 조건 추가 시도했지만 동일한 결과를 얻을.

+0

그것은 내 MySQL의에서 잘 작동하고, 다시 확인하시기 바랍니다 .. – jainvikram444

+0

내가 다시 시도 @vikramjain, 같은 결과는, 나는 다음과 같은 시도 ,하지만 태그 테이블을 확인할 때 여전히 거기에 있습니다. – ZAX

답변

0
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; 
SET time_zone = "+00:00"; 


-- -------------------------------------------------------- 

-- 
-- Table structure for table `Car` 
-- 

CREATE TABLE IF NOT EXISTS `Car` (
    `cID` int(11) NOT NULL AUTO_INCREMENT, 
    `color` varchar(10) DEFAULT NULL, 
    PRIMARY KEY (`cID`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; 

-- 
-- Dumping data for table `Car` 
-- 

INSERT INTO `Car` (`cID`, `color`) VALUES 
(2, 'B'), 
(4, 'A'); 

-- -------------------------------------------------------- 

-- 
-- Table structure for table `Tags` 
-- 

CREATE TABLE IF NOT EXISTS `Tags` (
    `tID` int(11) NOT NULL AUTO_INCREMENT, 
    `expDate` varchar(10) DEFAULT NULL, 
    `cID` int(11) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`tID`,`cID`), 
    KEY `cID` (`cID`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ; 

-- 
-- Dumping data for table `Tags` 
-- 

INSERT INTO `Tags` (`tID`, `expDate`, `cID`) VALUES 
(3, 'AA', 2), 
(4, 'BB', 2), 
(5, '11', 4), 
(6, '22', 4); 

-- 
-- Constraints for dumped tables 
-- 

-- 
-- Constraints for table `Tags` 
-- 
ALTER TABLE `Tags` 
    ADD CONSTRAINT `Tags_ibfk_1` FOREIGN KEY (`cID`) REFERENCES `Car` (`cID`) ON DELETE CASCADE; 

- 이제 레코드를 삭제합니다. `자동차에서 삭제 CID = 1`, 그것은 차 테이블에 대해 성공적으로 근무 장소 :

--DELETE FROM Car WHERE cID=4; 
관련 문제