Tôi muốn có một bảng SQL với hai cột. Một là chìa khóa vào một bảng khác, cái còn lại chứa một chuỗi ký tự. Ý tưởng là số điện thoại có thể được nhập chính xác (trong trường hợp đó ID vào bảng danh bạ được sử dụng) hoặc làm ký tự đại diện (trong đó chuỗi ký tự được sử dụng).MySQL: Ràng buộc một tập hợp các cột sao cho ít nhất một không phải là NULL
Điều này có nghĩa là một cột trong bảng sẽ giữ giá trị và cột kia sẽ giữ giá trị NULL.
Có thể hạn chế bảng theo cách sao cho một cột phải có giá trị và cột kia phải là NULL? Nếu cả hai cột là NULL hoặc cả hai đều có giá trị thì hàng đó không hợp lệ.
Tôi có cảm giác rằng MySQL không thể làm điều này (vì nó dường như không có hộp công cụ toàn diện khi nói đến các ràng buộc), nhưng nó không thể làm tổn thương khi hỏi.
Điều này có thể giúp (không * chính xác * mặc dù vậy): http://stackoverflow.com/questions/4523351/mysql-constraint-two- cột-so-one-of-them-luôn-là-null – WhyNotHugo