我想知道具有唯一条件约束的正确方法是什么? 因此,如果用户在AccountIdentifier字段中没有输入任何内容并提交,它将在数据库中显示为Null,但是由于唯一约束,它不能有多个空值,有没有办法做到这一点?
function username_is_available(username, callback) {
get_data("username", username, callback);
}
function get_data(data_type, data, fn) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
fn(xmlhttp.responseText == "true");
}
};
xmlhttp.open("GET", "availability.php?" + data_type + "=" + data, true);
xmlhttp.send();
}
// Usage:
username_is_available("Ivan", function(available) {
var text = available ? "Available" : "Taken";
document.getElementById("username_err").innerHTML = text;
});
答案 0 :(得分:2)
将您的索引创建为已过滤。如果从索引中省略空值,则不会强制执行唯一性。
答案 1 :(得分:1)
NULL
不是价值,而是缺乏价值。您可以在唯一列中拥有任意数量的NULL
个{{1}}个。例如,请查看此sqlfiddle example与您的表格。