สอบถาม การ delete ข้อมูลมากว่า 1 ตารางคับ ใครพอจะมีแนวคิดหรือว่าตัวอย่างการ delete ข้อมูล 2 ตารางไหมครับ
ใช้ฐานข้อมูลไรหรอ
Date :
2010-01-27 17:08:26
By :
onedan
ถ้าใช้ Sql Server ก็ไปกำหนดตรงความสัมพันธ์ได้เลยครับ ให้มันเป็น delete cascade ได้เลยครับ เวลาที่ตารางแม่ถูกลบไปแล้วตารางลูกที่มีความสัมพันธ์อยู่ก็จะโดนลบไปด้วยเลยครับ
Date :
2010-01-27 18:32:54
By :
Nameless
ลองไปดูจาก link นี้ครับว่าเป็นกรณีเดียวกันเปล่าถ้าใช่ก็ประยุกต์ได้เหมือนกันครับ
ส่วนถ้าไม่ใช่อย่าง link นั้นแล้วต้องการลบข้อมูล 2 ตาราง ก็เล่นแบบลูกทุ่งเลยครับ โปรแกรมเราก็เขียน ฐานข้อมูลเราก็ออกแบบเองอยู่แล้ว column ไหน เป็น FK กับ table ไหนเราก็รู้ ก็ลบมันดื้อๆ นี่แหละครับ
col EmpID เป็น PK ของ table Employees และเป็น FK ของ table ProductOrders
เรา ตั้งเงื่อนไขว่าถ้ามีการลบข้อมูลพนักงานออก Order ที่เกิดจากพนักงานนั้นต้องโดนลบด้วย ก็ใส่เลยครับ
delete from ProductOrders where EmpID = '1'; ลบจาก table Many ก่อน
delete from Employees where EmpID = '1'; ลบจาก table One ตาม
แค่นี้เองครับ
Date :
2010-01-28 01:04:44
By :
salapao_codeman
เหมือนผมแหละคับ บาวทีไม่ได้เน้นหลักการ แต่ทำออกมาแล้วตรงตามที่เราต้องการก้อทำไปเหอะคับ
โค้ดลักไก่มันไม่ได้ผิดกดหมายหนิคับ -*-
Date :
2010-01-28 09:30:54
By :
Patzy
ถ้าใช้ ฐานข้อมูล My SQL ละค่ะ ต้องทำยังไง (ขอแทรกด้วยคนนะค่ะ มีปัญหาตรงจุดนี้เหมือนกัน)
Date :
2010-11-26 01:43:02
By :
คนไม่รู้
ขอบคุณนะค่ะ
เดี๋ยวจะลองทำดู
Date :
2010-11-26 09:56:31
By :
คนไม่รู้
ลองทำดูแล้วนค่ะ แต่ทำไมมันทำไม่ได้ มันฟ้องขึ้นมาว่า
ผิดพลาด
คำค้น SQL:
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
MySQL แสดง:
#1289 - The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to have it working
Date :
2010-11-26 10:58:05
By :
คนไม่รู้
ใครรู้ ช่วยตอบหน่อยนะค่ะ
จะไม่ทันแล้ว
Date :
2010-11-27 10:49:31
By :
คนไม่รู้
ดูไฟล์ my.ini ใน folder mysql นะครับว่า
skip-innodb มันมี # ข้างหน้าหรือไม่มี ถ้าไม่มีใส่ # เข้าไปข้างหน้า จากนั้น restart mysql service
Date :
2010-11-27 11:11:44
By :
PlaKriM
ขอบคุณนะค่ะ
Date :
2010-11-28 15:55:17
By :
คนไม่รู้
ตัวอย่างสคริปต์
ถ้ามีการ Update หรือ Delete ข้อมูลในตาราง A จะมีผลต่อข้อมูลในตาราง B ด้วย
--// table A ========================================================
CREATE TABLE Table_A
( ID int NOT NULL IDENTITY(1,1) PRIMARY KEY NONCLUSTERED ,
Name nvarchar(16) NOT NULL ,
Title nvarchar(255) NOT NULL ,
RecordedDate datetime DEFAULT GetDate()
)
--// table B ========================================================
CREATE TABLE Table_B
( Code int NOT NULL IDENTITY(1,1) PRIMARY KEY NONCLUSTERED ,
ID int NOT NULL ,
SheetName nvarchar(255) NULL ,
IsSuccess bit NULL ,
RecordedDate datetime DEFAULT GetDate()
)
ALTER TABLE Table_B ADD
CONSTRAINT FK_Table_B
FOREIGN KEY(ID) REFERENCES Table_A (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
Date :
2010-11-29 14:38:53
By :
nipons
Load balance : Server 04