Khi bạn tạo kèo bóng đá pháp và bạn nhận ra rằng bạn đã phạm sai lầm hoặc các yêu cầu của thay đổi ứng dụng, bạn có thể bỏ kèo bóng đá pháp và tạo lại. Nhưng đây không phải là một tùy chọn thuận tiện nếu kèo bóng đá pháp đã được lấp đầy bằng dữ liệu hoặc nếu kèo bóng đá pháp được tham chiếu bởi các đối tượng cơ sở dữ liệu khác (ví dụ như một ràng buộc khóa nước ngoài).PostgreSQLcung cấp một gia đình các lệnh để thực hiện sửa đổi cho các kèo bóng đá pháp hiện có. Lưu ý rằng điều này khác biệt về mặt khái niệm với việc thay đổi dữ liệu có trong kèo bóng đá pháp: Ở đây chúng tôi quan tâm đến việc thay đổi định nghĩa hoặc cấu trúc của kèo bóng đá pháp.
Bạn có thể:
Thêm kèo bóng đá pháp
Xóa kèo bóng đá pháp
Thêm các ràng buộc
Xóa các ràng buộc
Thay đổi giá trị mặc định
Thay đổi loại dữ liệu kèo bóng đá pháp
Đổi tên kèo bóng đá pháp
Đổi tên kèo bóng đá pháp
Tất cả những hành động này được thực hiện bằng cách sử dụngPostgreSQL: Tài liệu:Lệnh, có trang tham chiếu chứa chi tiết ngoài các trang được đưa ra ở đây.
Để thêm kèo bóng đá pháp, sử dụng lệnh như:
Sản phẩm thay đổi Thêm mô tả kèo bóng đá pháp;
kèo bóng đá pháp mới ban đầu chứa đầy bất kỳ giá trị mặc định nào được đưa ra (NULL nếu bạn không chỉ địnhMặc định
mệnh đề).
từPostgreSQL11, Thêm một cột có giá trị mặc định không đổi không còn có nghĩa là mỗi hàng của kèo bóng đá pháp cần được cập nhật khiBẢNG ALTER
Câu lệnh được thực thi. Thay vào đó, giá trị mặc định sẽ được trả về vào lần tiếp theo, hàng được truy cập và áp dụng khi kèo bóng đá pháp được viết lại, tạo raBẢNG ALTER
rất nhanh ngay cả trên các kèo bóng đá pháp lớn.
Tuy nhiên, nếu giá trị mặc định biến động (ví dụ:clock_timestamp ()
) Mỗi hàng sẽ cần được cập nhật với giá trị được tính toán tại thời điểmkèo bóng đá pháp thay đổi
được thực thi. Để tránh hoạt động cập nhật có khả năng kéo dài, đặc biệt nếu bạn có ý định lấp đầy kèo bóng đá pháp với các giá trị chủ yếu là Nondefault, có thể tốt hơn là thêm kèo bóng đá pháp không có mặc định, hãy chèn các giá trị chính xác bằng cách sử dụngCập nhật
, và sau đó thêm bất kỳ mặc định mong muốn như được mô tả bên dưới.
Bạn cũng có thể xác định các ràng buộc trên kèo bóng đá pháp cùng một lúc, sử dụng cú pháp thông thường:
14913_14998
Trên thực tế, tất cả các tùy chọn có thể được áp dụng cho mô tả kèo bóng đá pháp trongTạo kèo bóng đá pháp
có thể được sử dụng ở đây. Tuy nhiên, hãy nhớ rằng giá trị mặc định phải thỏa mãn các ràng buộc đã cho hoặcThêm
sẽ thất bại. Ngoài ra, bạn có thể thêm các ràng buộc sau (xem bên dưới) sau khi bạn đã điền vào kèo bóng đá pháp mới một cách chính xác.
Để xóa kèo bóng đá pháp, sử dụng lệnh như:
thay đổi sản phẩm kèo bóng đá pháp mô tả cột;
Bất kỳ dữ liệu nào trong cột đều biến mất. Các ràng buộc kèo bóng đá pháp liên quan đến cột cũng bị loại bỏ.PostgreSQLsẽ không âm thầm bỏ ràng buộc đó. Bạn có thể cho phép bỏ mọi thứ phụ thuộc vào kèo bóng đá pháp bằng cách thêmCascade
:
thay đổi sản phẩm kèo bóng đá pháp thả cột mô tả Cascade;
xemPhần 5.13Để mô tả về cơ chế chung đằng sau điều này.
Để thêm một ràng buộc, cú pháp ràng buộc kèo bóng đá pháp được sử dụng. Ví dụ:
Sản phẩm thay đổi BẢNG THÊM Kiểm tra (Tên < '');
Để thêm một ràng buộc không null, không thể được viết dưới dạng ràng buộc kèo bóng đá pháp, hãy sử dụng cú pháp này:
thay đổi sản phẩm kèo bóng đá pháp thay đổi cột sản phẩm_no không null;
Biên giới sẽ được kiểm tra ngay lập tức, vì vậy dữ liệu kèo bóng đá pháp phải thỏa mãn ràng buộc trước khi có thể được thêm vào.
Để xóa một ràng buộc, bạn cần biết tên của nó. Nếu bạn đặt tên cho nó thì điều đó thật dễ dàng.PSQLlệnh\ D
có thể hữu ích ở đây; Các giao diện khác cũng có thể cung cấp một cách để kiểm tra chi tiết kèo bóng đá pháp.TableName
thay đổi sản phẩm kèo bóng đá pháp thả ràng buộc một số_name;
(Nếu bạn đang xử lý một tên ràng buộc được tạo như$ 2
, Đừng quên rằng bạn sẽ cần phải kiểm duyệt nó để biến nó thành một định danh hợp lệ.)
Như với việc thả một kèo bóng đá pháp, bạn cần thêmCascade
Nếu bạn muốn bỏ một ràng buộc mà một cái gì đó khác phụ thuộc vào. Một ví dụ là một ràng buộc khóa nước ngoài phụ thuộc vào ràng buộc khóa duy nhất hoặc chính trên (các) kèo bóng đá pháp được tham chiếu.
Điều này hoạt động giống nhau cho tất cả các loại ràng buộc ngoại trừ các ràng buộc không null. Để thả một ràng buộc không sử dụng NULL:
thay đổi sản phẩm kèo bóng đá pháp thay đổi cột sản phẩm_no không null;
(Nhớ lại rằng các ràng buộc không có null không có tên.)
Để đặt mặc định mới cho một kèo bóng đá pháp, hãy sử dụng lệnh như:
Sản phẩm thay đổi thay đổi giá kèo bóng đá pháp Đặt mặc định 7.77;
Lưu ý rằng điều này không ảnh hưởng đến bất kỳ hàng hiện có nào trong kèo bóng đá pháp, nó chỉ thay đổi mặc định cho tương laiChèn
lệnh.
Để xóa bất kỳ giá trị mặc định nào, sử dụng:
thay đổi sản phẩm kèo bóng đá pháp thay đổi giá bỏ giá mặc định;
Điều này thực sự giống như đặt mặc định thành NULL. Kết quả là, việc thả mặc định không được xác định là lỗi không phải là lỗi mà mặc định là mặc định là giá trị null.
Để chuyển đổi kèo bóng đá pháp thành kiểu dữ liệu khác, sử dụng lệnh như:
thay đổi sản phẩm kèo bóng đá pháp thay đổi loại giá cột số (10,2);
Điều này sẽ chỉ thành công nếu mỗi mục nhập hiện tại trong kèo bóng đá pháp có thể được chuyển đổi thành loại mới bằng một diễn viên ngầm. Nếu cần chuyển đổi phức tạp hơn, bạn có thể thêmsử dụng
mệnh đề chỉ định cách tính các giá trị mới từ cũ.
PostgreSQLsẽ cố gắng chuyển đổi giá trị mặc định của kèo bóng đá pháp (nếu có) sang loại mới, cũng như bất kỳ ràng buộc nào liên quan đến kèo bóng đá pháp. Nhưng những chuyển đổi này có thể thất bại hoặc có thể tạo ra kết quả đáng ngạc nhiên.