Syntax InnoDB
CREATE TABLE `customer` (
.
.
.
.
) ENGINE=InnoDB;
.
.
.
.
) ENGINE=InnoDB;
ดูตัวอย่างครับ
ตัวอย่างผมได้ทำการสร้าง Table ชื่อ customer และ audit ซึ่งเมื่อมีการลบข้อมูลในตาราง customer ข้อมูลที่อยู่ใน audit จะถูกลบไปด้วยครับ
Table : customer
CREATE TABLE `customer` (
`CustomerID` varchar(4) NOT NULL,
`Name` varchar(50) NOT NULL,
`Email` varchar(50) NOT NULL,
`CountryCode` varchar(2) NOT NULL,
`Budget` double NOT NULL,
`Used` double NOT NULL,
PRIMARY KEY (`CustomerID`)
) ENGINE=InnoDB;
INSERT INTO `customer` VALUES ('C001', 'Win Weerachai', 'win.weerachai@thaicreate.com', 'TH', 1000000, 600000);
INSERT INTO `customer` VALUES ('C002', 'John Smith', 'john.smith@thaicreate.com', 'EN', 2000000, 800000);
INSERT INTO `customer` VALUES ('C003', 'Jame Born', 'jame.born@thaicreate.com', 'US', 3000000, 600000);
INSERT INTO `customer` VALUES ('C004', 'Chalee Angel', 'chalee.angel@thaicreate.com', 'US', 4000000, 100000);
INSERT INTO `customer` VALUES ('C005', 'Weerachai Nukitram', 'webmaster@thaicreate.com', 'TH', 2000000, 100000);
`CustomerID` varchar(4) NOT NULL,
`Name` varchar(50) NOT NULL,
`Email` varchar(50) NOT NULL,
`CountryCode` varchar(2) NOT NULL,
`Budget` double NOT NULL,
`Used` double NOT NULL,
PRIMARY KEY (`CustomerID`)
) ENGINE=InnoDB;
INSERT INTO `customer` VALUES ('C001', 'Win Weerachai', 'win.weerachai@thaicreate.com', 'TH', 1000000, 600000);
INSERT INTO `customer` VALUES ('C002', 'John Smith', 'john.smith@thaicreate.com', 'EN', 2000000, 800000);
INSERT INTO `customer` VALUES ('C003', 'Jame Born', 'jame.born@thaicreate.com', 'US', 3000000, 600000);
INSERT INTO `customer` VALUES ('C004', 'Chalee Angel', 'chalee.angel@thaicreate.com', 'US', 4000000, 100000);
INSERT INTO `customer` VALUES ('C005', 'Weerachai Nukitram', 'webmaster@thaicreate.com', 'TH', 2000000, 100000);
Table : audit
CREATE TABLE `audit` (
`AuditID` int(4) NOT NULL,
`CustomerID` varchar(4) NOT NULL,
`Date` date NOT NULL,
`Used` double NOT NULL,
PRIMARY KEY (`AuditID`),
FOREIGN KEY (CustomerID) REFERENCES customer (CustomerID) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
INSERT INTO `audit` VALUES (1, 'C001', '2008-08-01', 100000);
INSERT INTO `audit` VALUES (2, 'C001', '2008-08-05', 200000);
INSERT INTO `audit` VALUES (3, 'C001', '2008-08-10', 300000);
INSERT INTO `audit` VALUES (4, 'C002', '2008-08-02', 400000);
INSERT INTO `audit` VALUES (5, 'C002', '2008-08-07', 100000);
INSERT INTO `audit` VALUES (6, 'C002', '2008-08-15', 300000);
INSERT INTO `audit` VALUES (7, 'C003', '2008-08-20', 400000);
INSERT INTO `audit` VALUES (8, 'C003', '2008-08-25', 200000);
INSERT INTO `audit` VALUES (9, 'C004', '2008-07-04', 100000);
INSERT INTO `audit` VALUES (10, 'C005', '2008-07-04', 200000);
`AuditID` int(4) NOT NULL,
`CustomerID` varchar(4) NOT NULL,
`Date` date NOT NULL,
`Used` double NOT NULL,
PRIMARY KEY (`AuditID`),
FOREIGN KEY (CustomerID) REFERENCES customer (CustomerID) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
INSERT INTO `audit` VALUES (1, 'C001', '2008-08-01', 100000);
INSERT INTO `audit` VALUES (2, 'C001', '2008-08-05', 200000);
INSERT INTO `audit` VALUES (3, 'C001', '2008-08-10', 300000);
INSERT INTO `audit` VALUES (4, 'C002', '2008-08-02', 400000);
INSERT INTO `audit` VALUES (5, 'C002', '2008-08-07', 100000);
INSERT INTO `audit` VALUES (6, 'C002', '2008-08-15', 300000);
INSERT INTO `audit` VALUES (7, 'C003', '2008-08-20', 400000);
INSERT INTO `audit` VALUES (8, 'C003', '2008-08-25', 200000);
INSERT INTO `audit` VALUES (9, 'C004', '2008-07-04', 100000);
INSERT INTO `audit` VALUES (10, 'C005', '2008-07-04', 200000);
เพียงเท่านี้ก็จะได้ Relation 2 ตารางครับ เมื่อมีการแก้ไขหรือลบข้อมูลใน customer ข้อมูลใน audit จะมีผลในการแก้ไข หรือ ลบเช่นเดียวกันครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น