Vấn đề:
Bạn muốn bỏ khóa ngoại từ một bảng trong cơ sở dữ liệu.
Ví dụ:
Chúng tôi muốn xóa khóa ngoại có tên fk_student_city_id
từ bảng student
.
Giải pháp 1 (bảng mới):
ALTER TABLE student DROP CONSTRAINT fk_student_city_id;
Thảo luận:
Để bỏ khóa ngoại khỏi bảng, hãy sử dụng ALTER TABLE
mệnh đề với tên của bảng (trong ví dụ của chúng tôi, student
) theo sau là mệnh đề DROP CONSTRAINT
với tên của ràng buộc khóa ngoại. Trong ví dụ của chúng tôi, tên của ràng buộc này là fk_student_city_id
.
Nếu ràng buộc cho khóa ngoại được tạo bởi cơ sở dữ liệu, bạn có thể tìm thấy tên này trong cơ sở dữ liệu. Tuy nhiên, mỗi máy chủ cơ sở dữ liệu có một cách khác nhau để đặt tên cho các ràng buộc. Trong SQL Server, bạn có thể kiểm tra nó bằng cách chọn dữ liệu từ sys.key_constraints
trong cơ sở dữ liệu đã cho. Trong PostgreSQL, bạn chọn conname
từ pg_constraint
bàn. Oracle lưu trữ dữ liệu này trong bảng user_constraints và MySQL cho phép bạn lấy tên từ CONSTRAINT_NAME
trong information_schema.TABLE_CONSTRAINTS
.