Delete Record có chứa khóa ngoại

Một record chỉ được Delete khi không còn bất cứ ràng buộc khóa ngoại nào dẫn tới nó.

Ví dụ:

Bước 1: Insert dữ liệu vào bảng Customers Và Orders trong database NorthWind.

USE northwind; 

GO 

INSERT INTO Customers 
            (CustomerID, 
             CompanyName) 
VALUES     ( 'Cust1', 
             'Test Delete'); 

INSERT INTO Orders 
            (CustomerID) 
VALUES      ('Cust1') 

Bước 2: Kiểm tra dữ liệu.
Bảng Customers:

USE northwind;

GO

SELECT * FROM Customers WHERE CustomerID = 'Cust1'

Dữ liệu bảng Customers

Bảng Orders:

USE northwind;

GO

SELECT * FROM Orders WHERE CustomerID = 'Cust1'

dữ liệu bảng Orders

Bây giờ, với record có CustomerID = 'Cust1' sẽ có ràng buộc khóa ngoại dẫn đến nó trong bảng Orders, là Order có OrderID = 12079.

Bước 3: Tiến hành xóa Customer có CustomerID = 'Cust1'.

USE northwind;

DELETE FROM Customers WHERE CustomerID = 'Cust1'

SQL sẽ báo lỗi, lí do là record này còn khóa ngoại từ bảng Orders dẫn đến.

Để xóa record này ta phải làm như sau.

Bước 1: xóa các record có ràng buộc khóa ngoại dẫn đến nó.

DELETE FROM Orders WHERE CustomerID = 'Cust1'

Như vậy, sẽ không còn ràng buộc với Customer có CustomerID = 'Cust1'.

Bước 2: Tiến hành xóa trong bảng Customer.

DELETE FROM Customers WHERE CustomerID = 'Cust1'

Bạn có thể tham khảo cách cài đặt database northwind tại đây:
http://hocdai.com/sql-can-ban/cai-dat-sql/cai-dat-database-northwind

Các môn học khác

Khóa học này cung cấp cho ta kiến thức nền tảng về công nghệ Blockchain, Bitcoin. Vì sao nó được gọi là công nghệ của tương lai, vì sao giá Bitcoin lại cao đến vậy. Làm sao để mua Bitcoin, ETH.

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.

Khoa học về dinh dưỡng, giáo trình giảm cân cho mọi người.