kèo bóng đá euro - Xác định miền mới
kèo bóng đá eurokèo bóng đá euro
[As]data_type
[đối chiếuđối chiếu
]Biểu thức
]ràng buộc
[...]]WHEREràng buộc
IS:[ràng buộcinstraint_name
]Biểu thức
)
kèo bóng đá euro
kèo bóng đá euro một miền mới. Một miền về cơ bản là một kiểu dữ liệu với các ràng buộc tùy chọn (các hạn chế đối với tập hợp các giá trị được phép).
Nếu một kèo bóng đá euro lược đồ được đưa ra (ví dụ:kèo bóng đá euro myschema.mydomain ...
) Sau đó, miền được kèo bóng đá euro trong lược đồ được chỉ định. Nếu không, nó được kèo bóng đá euro ra trong lược đồ hiện tại.
kèo bóng đá euro rất hữu ích để trừu tượng hóa các ràng buộc chung trên các trường vào một vị trí duy nhất để bảo trì. Ví dụ: một số bảng có thể chứa các cột địa chỉ email, tất cả đều yêu cầu cùng một ràng buộc kiểm tra để xác minh cú pháp địa chỉ.
Để có thể kèo bóng đá euro một miền, bạn phải cósử dụng
Đặc quyền trên loại cơ bản.
kèo bóng đá euro
Tên (tùy chọn Lược đồ theo trình độ) của một miền sẽ được kèo bóng đá euro.
data_type
Loại dữ liệu cơ bản của miền. Điều này có thể bao gồm các nhà xác định mảng.
đối chiếu
kèo bóng đá euro đối chiếu tùy chọn cho miền. Nếu không có đối chiếu được chỉ định, miền có hành vi đối chiếu giống như kiểu dữ liệu cơ bản của nó.đối chiếu
được chỉ định.
mặc địnhBiểu thức
Themặc định
mệnh đề Chỉ định giá trị mặc định cho các cột của kiểu dữ liệu miền. Giá trị là bất kỳ biểu thức không thay đổi nào (nhưng không được phép truy vấn con).
Biểu thức mặc định sẽ được sử dụng trong bất kỳ thao tác chèn nào không chỉ định giá trị cho cột. Nếu kèo bóng đá euro giá trị mặc định được xác định cho kèo bóng đá euro cột cụ thể, nó sẽ ghi đè bất kỳ mặc định nào được liên kết với miền.
ràng buộcinstraint_name
một tên tùy chọn cho một ràng buộc. Nếu không được chỉ định, hệ thống sẽ kèo bóng đá euro.
không null
Giá trị của miền này được ngăn chặn không bị null (nhưng xem ghi chú bên dưới).
null
Giá trị của miền này được phép là null. Đây là mặc định.
Điều khoản này chỉ dành cho khả năng tương thích với cơ sở dữ liệu SQL không tiêu chuẩn. Việc sử dụng nó không được khuyến khích trong các ứng dụng mới.
Kiểm tra (Biểu thức
)
Kiểm tra
Các điều khoản chỉ định các ràng buộc toàn vẹn hoặc kiểm tra giá trị của miền phải thỏa mãn. Mỗi ràng buộc phải là một biểu thức kèo bóng đá euro ra một kết quả boolean.giá trị
để chỉ giá trị đang được kiểm tra. Biểu thức đánh giá thành công thực hoặc chưa biết thành công.
Hiện tại,Kiểm tra
Biểu thức không thể chứa các nhóm con cũng như không tham khảo các biến khác ngoàigiá trị
.
Khi kèo bóng đá euro miền có nhiềuKiểm tra
Các ràng buộc, chúng sẽ được kiểm tra theo thứ tự bảng chữ cái theo kèo bóng đá euro. (PostgreSQLPhiên bản trước 9.5 không tôn trọng bất kỳ lệnh bắn cụ thể nào choKiểm tra
ràng buộc.)
Các ràng buộc miền, đặc biệtkhông null
, được kiểm tra khi chuyển đổi giá trị thành loại miền. Có thể cho kèo bóng đá euro cột trên danh nghĩa của loại miền để đọc là null mặc dù có kèo bóng đá euro ràng buộc như vậy.
16431_16506
Sub-select vô hướng trống sẽ kèo bóng đá euro ra một giá trị null được coi là thuộc loại miền, do đó, không có kiểm tra ràng buộc nào được áp dụng cho nó và việc chèn sẽ thành công.
Rất khó để tránh các vấn đề như vậy, vì giả định chung của SQL rằng giá trị null là giá trị hợp lệ của mọi loại dữ liệu. Do đó, thực tiễn tốt nhất là thiết kế các ràng buộc của kèo bóng đá euro miền để giá trị null được cho phép, sau đó áp dụng cộtkhông null
Các ràng buộc đối với các cột thuộc loại miền khi cần, thay vì trực tiếp đến loại miền.
PostgreSQLgiả sử rằngKiểm tra
Điều kiện của các ràng buộc là bất biến, nghĩa là chúng sẽ luôn đưa ra kết quả tương tự cho cùng kèo bóng đá euro giá trị đầu vào. Giả định này là những gì biện minh cho việc kiểm traKiểm tra
Các ràng buộc chỉ khi kèo bóng đá euro giá trị được chuyển đổi đầu tiên thành kèo bóng đá euro loại miền và không phải vào thời điểm khác. (Điều này thực chất giống như cách xử lý bảngKiểm tra
Các ràng buộc, như được mô tả trongPhần 5.3.1.)
kèo bóng đá euro ví dụ về kèo bóng đá euro cách phổ biến để phá vỡ giả định này là tham chiếu chức năng do người dùng xác định trong AKiểm tra
Biểu thức và sau đó thay đổi hành vi của hàm đó.PostgreSQLKhông không cho phép điều đó, nhưng sẽ không nhận thấy nếu có các giá trị được lưu trữ của loại miền hiện vi phạmKiểm tra
ràng buộc. Điều đó sẽ làm cho kèo bóng đá euro kết xuất cơ sở dữ liệu tiếp theo và khôi phục thất bại.Alter Domain
), điều chỉnh định nghĩa chức năng và thêm lại ràng buộc, do đó kiểm tra lại nó so với dữ liệu được lưu trữ.
Ví dụ này kèo bóng đá euro raus_postal_code
Kiểu dữ liệu và sau đó sử dụng loại trong định nghĩa bảng. kèo bóng đá euro bài kiểm tra biểu thức thông thường được sử dụng để xác minh rằng giá trị trông giống như mã bưu chính hợp lệ của Hoa Kỳ:
kèo bóng đá euro miền US_POSTAL_CODE làm văn bản
lệnhkèo bóng đá euro
phù hợp với tiêu chuẩn SQL.