我正在学习数据库考试,其中一道练习要求我判断是否可以在这个数据库中进行INSERT[...]
操作:
CREATE TABLE A (
a1 INTEGER NOT NULL PRIMARY KEY,
a2 CHAR(10) NOT NULL,
a3 CHAR(10) NOT NULL,
CHECK(a2<a3)
)
那个最后一位
(a2<a3)
是什么意思?它是一个字符串,所以它比较的是长度还是其他什么?需要帮忙的话请告诉我,谢谢。我正在学习数据库考试,其中一道练习要求我判断是否可以在这个数据库中进行INSERT[...]
操作:
CREATE TABLE A (
a1 INTEGER NOT NULL PRIMARY KEY,
a2 CHAR(10) NOT NULL,
a3 CHAR(10) NOT NULL,
CHECK(a2<a3)
)
(a2<a3)
是什么意思?它是一个字符串,所以它比较的是长度还是其他什么?需要帮忙的话请告诉我,谢谢。insert into A values (0, 'a', 'b');
可以执行
insert into A values (1, 'b', 'a');
会抛出异常
CHECK(a2 < a3)
只允许插入a2的值在字母表中排在a3之前,即a2小于a3。
你可以尝试执行select ascii('a');
来查看字符的ASCII码(这里是97)。
编辑: 请注意,像A这样的大写字母和小写字母a具有不同的ASCII码。