Làm cách nào để tạo một ràng buộc để sử dụng cụm từ thông dụng trong postgres?Làm cách nào để tạo một ràng buộc để kiểm tra xem email có hợp lệ trong postgres không?
21
A
Trả lời
40
CREATE TABLE emails (
email varchar
CONSTRAINT proper_email CHECK (email ~* '^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+[.][A-Za-z]+$')
);
(regex có thể chưa hoàn tất, bạn có thể tìm kiếm regexp để đối sánh email trên toàn bộ web và chọn một email bạn thích nhất).
17
Tôi khuyên bạn nên sử dụng mô-đun phân tích cú pháp địa chỉ email hiện tại thay vì tạo mẫu phù hợp với riêng bạn. Ví dụ:
CREATE OR REPLACE FUNCTION check_email(email text) RETURNS bool
LANGUAGE plperlu
AS $$
use Email::Address;
my @addresses = Email::Address->parse($_[0]);
return scalar(@addresses) > 0 ? 1 : 0;
$$;
CREATE TABLE emails (
email varchar
CONSTRAINT proper_email CHECK (check_email(email))
);
+0
Tôi có thể nói đây là cách đúng nhưng Amazon không hỗ trợ nó (perl) trong RDS :-(. Có thể một ngày nào đó. – Jackie
1
Bạn cũng có thể tạo domain và sử dụng nó làm loại khi xác định cột bảng, ví dụ:
CREATE DOMAIN email AS TEXT CHECK (VALUE ~* '^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+[.][A-Za-z]+$');
CREATE TABLE emails (
email email
);
Bằng cách này bạn sẽ không cần phải xác định lại regex mỗi lần email chứa cột được sử dụng trong cơ sở dữ liệu.
Các vấn đề liên quan
- 1. C# Làm cách nào để kiểm tra xem URL có tồn tại/hợp lệ không?
- 2. postgres: ràng buộc kiểm tra và các giá trị null
- 3. Làm cách nào để kiểm tra xem người dùng postgres có tồn tại không?
- 4. Làm cách nào để kiểm tra xem biến enum có hợp lệ không?
- 5. Làm cách nào để tạo ràng buộc kiểm tra giữa hai cột trong SQL?
- 6. Cách kiểm tra xem con trỏ có hợp lệ không?
- 7. Cách kiểm tra xem URL có hợp lệ không
- 8. Làm cách nào để kiểm tra xem có tồn tại ẩn hoặc rõ ràng không?
- 9. cách kiểm tra xem tệp pdb có hợp lệ để gỡ lỗi một assembly hay không
- 10. Làm cách nào để kiểm tra xem một ngoại lệ cụ thể có bị ném không?
- 11. Làm thế nào để kiểm tra xem một id email có tồn tại hay không?
- 12. Làm thế nào để bạn kiểm tra xem một phương pháp python có bị ràng buộc hay không?
- 13. Làm thế nào để kiểm tra xem một mảng byte là một hình ảnh hợp lệ?
- 14. Python: Cách kiểm tra xem một chuỗi có phải là một IRI hợp lệ không?
- 15. Làm cách nào để kiểm tra xem URL có phải là hình ảnh hợp lệ (trong javascript) không?
- 16. Làm cách nào để kiểm tra xem một nút XML nhất định có tồn tại không?
- 17. Làm cách nào để sử dụng lớp System.Uri .NET để kiểm tra xem URL có hợp lệ không?
- 18. '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ó
- 19. làm thế nào để kiểm tra không ràng buộc cột null trong sql oracle?
- 20. Kiểm tra xem Tệp PDF có hợp lệ không (Python)
- 21. Kiểm tra xem đường dẫn có hợp lệ trong Python
- 22. Django: Cách kiểm tra xem có email nào không có biểu mẫu
- 23. Cách kiểm tra xem phiên không hợp lệ
- 24. Kiểm tra xem url có hợp lệ hay không
- 25. Làm cách nào để kiểm tra các biến đóng bị ràng buộc trong javascript?
- 26. Có thích hợp hơn để kiểm tra xem nhà xây dựng có ném ngoại lệ không?
- 27. Kiểm tra tính hợp lệ của email trong django/python
- 28. Cách kiểm tra xem đường dẫn có hợp lệ trong tăng :: hệ thống tệp không?
- 29. Làm cách nào để kiểm tra xem một hàng có bị khóa để cập nhật không?
- 30. Làm cách nào để kiểm tra xem chuỗi có phải là biểu diễn màu hex hợp lệ không?
Cảm ơn. Điều đó làm việc hoàn hảo. – nunos
Làm cách nào chúng ta có thể thực hiện công việc này bằng lệnh ALTER với cả hai phương thức ADD CONSTRAINT và MODIFY? – Mahesha999
Bạn có ý nghĩa gì khi thêm và sửa đổi? Với việc thêm bạn làm một cái gì đó như 'ALTER TABLE email ADD CONSTRAINT proper_email CHECK ....' Tôi tin. Một cái gì đó tương tự với sửa đổi, chỉ cần kiểm tra các tài liệu. Hoặc, như họ nói ở đây - bạn đã thử cái gì? –