我试图从小型员工数据库中删除一些旧记录(存档中的旧记录)。
DB的相关表格具有以下结构:
员工 {EmployeeID,FamilyName,MiddleName,GivenName,Address,Suburb,State, 邮编}
费用 {ExpenseNo,ManagerID,EmployeeID,LodgementDate}
EmployeeID是费用关系中的FK。 LodgementDate的格式为MM-DD-YYYY。
编写以下内容似乎删除了(测试)数据库中的所有记录,而不是那些早于(甚至匹配)日期的记录:
DELETE FROM employee
WHERE EXISTS
(SELECT *
FROM employee, expense
WHERE employee.employeeid= expense.employeeid
AND lodgementdate = to_date('08-01-2007', 'MM-DD-YYYY'));
我知道有一条记录具有确切的LodgementDate,但它仍然会删除所有记录(这是测试床)。
答案 0 :(得分:2)
从您存在的from子句中删除患者。
DELETE FROM patient
WHERE EXISTS
(SELECT *
FROM account
WHERE patient.patientid = account.patientid
AND treatmentdate = to_date('01-JAN-07', 'DD-MON-YY'));