Tôi có hai bảng hiện có (TableA và TableB) và tôi cần phải thêm một cột mới vào TableA có khóa ngoài để TableB và có giá trị mặc định không phải là rỗng ... và cả hai ràng buộc này cần được đặt tên. Tôi có thể làm cái này như thế nào?Làm cách nào để thay đổi cột thêm bảng có ràng buộc mặc định có tên và ràng buộc khóa ngoài được đặt tên?
36
A
Trả lời
73
Việc thêm cả hai ràng buộc trong một câu lệnh không dễ như tôi nghĩ và dường như không có nhiều ví dụ ở đó (ít nhất tôi không thể tìm thấy bất kỳ điều gì dễ dàng), vì vậy tôi nghĩ rằng tôi sẽ chia sẻ cách tôi đã làm nó ở đây và có lẽ ai đó có thể đề xuất một cách tốt hơn?
ALTER TABLE [table name] ADD
[New Column Name] [Column Type]
CONSTRAINT [constraint name] DEFAULT ([default value]) NOT NULL,
CONSTRAINT [constraint name] FOREIGN KEY ([New Column Name])
REFERENCES [Other Table] ([Foreign ID])
Ví dụ:
ALTER TABLE tableA ADD
myNewColumn BIGINT
CONSTRAINT myNamedConstraint_df default (1) NOT NULL,
CONSTRAINT myNamedConstraint_fk FOREIGN KEY (myNewColumn)
REFERENCES tableB (tableBPrimaryKeyID)
0
tôi đã làm nó thành hai phần, trong SQL Server Management Studio.
ALTER TABLE MyTable
ADD MyId uniqueidentifier DEFAULT (NEWID())
Sau đó, tôi đã thay đổi GUID theo cách thủ công thành những gì họ thực sự nên ở cột mới. Sau đó, tôi đã thêm ràng buộc khóa ngoài.
ALTER TABLE MyTable
ADD FOREIGN KEY (MyId)
REFERENCES OtherTable(Id)
Các vấn đề liên quan
- 1. Cột thay đổi, thêm ràng buộc mặc định
- 2. Thay đổi bảng để cung cấp ràng buộc khóa ngoài
- 3. Mã EF trước - tên ràng buộc khóa ngoài tùy chỉnh
- 4. Tôi có thể tạo ràng buộc mặc định được đặt tên trong câu lệnh thêm cột trong SQL Server không?
- 5. sql: cần thay đổi ràng buộc trên bảng đổi tên?
- 6. 'không hợp lệ để tạo lỗi ràng buộc mặc định' khi cố gắng thêm ràng buộc vào bảng hiện có
- 7. Ràng buộc khóa ngoài của MySQL - Cột số nguyên
- 8. Giảm ràng buộc chưa đặt tên
- 9. Thay đổi bảng MySQL để thêm ràng buộc khóa ngoài dẫn đến lỗi
- 10. Hibernate Tên cột Tham số Ràng buộc
- 11. Tạo ràng buộc khóa ngoài phức hợp
- 12. Cách thêm cột mới có ràng buộc khóa ngoài trong một câu lệnh trong oracle
- 13. 1: 1 Ràng buộc khóa ngoài
- 14. Làm thế nào tôi có thể thả tất cả ràng buộc ràng buộc mặc định trên một bảng
- 15. Thêm ràng buộc khóa ngoài cho các bảng hiện có trong Ruby on Rails (MySQL)
- 16. Thả khóa ngoại mà không biết tên của ràng buộc?
- 17. Kết nối Doctrine 2 không có ràng buộc khóa ngoài
- 18. Có cách nào để có được các ràng buộc của một bảng trong SQLite không?
- 19. Xóa khỏi nhiều bảng có ràng buộc nước ngoài
- 20. Có thể cùng một cột có khóa chính và khóa ngoài có ràng buộc với cột khác không
- 21. Mục đích của việc ràng buộc đặt tên là
- 22. Làm cách nào để tìm định nghĩa về ràng buộc có tên trong Oracle?
- 23. Haskell: mặc định ràng buộc để gõ
- 24. Làm cách nào để xóa bản ghi có ràng buộc khóa ngoài?
- 25. Ràng buộc kiểm tra khóa ngoài T-SQL
- 26. MySQL: xóa một hàng bỏ qua ràng buộc khóa ngoài
- 27. Mã lỗi: 1215. Không thể thêm ràng buộc khóa ngoài (khóa ngoài)
- 28. Làm cách nào để tìm ràng buộc mặc định bằng cách sử dụng INFORMATION_SCHEMA?
- 29. Làm thế nào để có được tên của một ràng buộc duy nhất trong postgresql?
- 30. Fluent Nhibernate 1.0 - Chỉ định tên ràng buộc khóa ngoài giữa lớp và tham gia lớp con