Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用char的SQLite检查约束_Java_Sqlite_Char_Check Constraints - Fatal编程技术网

Java 使用char的SQLite检查约束

Java 使用char的SQLite检查约束,java,sqlite,char,check-constraints,Java,Sqlite,Char,Check Constraints,我目前正在使用SQLite Studio,在对char类型的列添加检查约束时遇到问题。该列是长度为5的字符的唯一代码列表。我希望check约束不包括代码中的任何位置的字母S、I和Z。这是我到目前为止写的代码 检查(长度(VIN)=5)和子字符(VIN,1,5)不在('S','I','Z')中 上面的代码不起任何作用,字母仍然可以包含在代码中,所以我决定做相反的事情,尽管要长一点 (长度(VIN)=5)和子字符(VIN,1,5)在('A','B','C','D','E','F','G','H','

我目前正在使用SQLite Studio,在对char类型的列添加检查约束时遇到问题。该列是长度为5的字符的唯一代码列表。我希望check约束不包括代码中的任何位置的字母S、I和Z。这是我到目前为止写的代码

检查(长度(VIN)=5)和子字符(VIN,1,5)不在('S','I','Z')中

上面的代码不起任何作用,字母仍然可以包含在代码中,所以我决定做相反的事情,尽管要长一点

(长度(VIN)=5)和子字符(VIN,1,5)在('A','B','C','D','E','F','G','H','J','K','L','M','N','O','p','Q','R','T','U','V','W','X','Y')

在上面的代码中,检查约束起作用,但约束“不允许”插入5长度的代码。在这个问题上有任何帮助都会很好。提前感谢

substr(VIN,1,5)NOT in('S','I','Z')
将始终为真,因为您正在检查一个5字符长的字符串是否不等于一个字符长的字符串,情况总是如此。您需要匹配:

sqlite>创建表格示例(vin文本检查(长度(vin)=5,且vin不是GLOB'*[sSiIzZ]*');
sqlite>插入示例(vin)值('aaaaaa');--太久
错误:检查约束失败:示例
sqlite>插入示例(vin)值('aaaaa');--恰到好处
sqlite>插入示例(vin)值('aaaza');--禁字
错误:检查约束失败:示例