📄 rowid.test
字号:
INSERT INTO t2(b) VALUES(66); SELECT * FROM t2; }} {1 55 2 66}do_test rowid-7.4 { execsql { INSERT INTO t2(a,b) VALUES(1000000,77); INSERT INTO t2(b) VALUES(88); SELECT * FROM t2; }} {1 55 2 66 1000000 77 1000001 88}do_test rowid-7.5 { execsql { INSERT INTO t2(a,b) VALUES(2147483647,99); INSERT INTO t2(b) VALUES(11); SELECT b FROM t2 ORDER BY b; }} {11 55 66 77 88 99}ifcapable subquery { do_test rowid-7.6 { execsql { SELECT b FROM t2 WHERE a NOT IN(1,2,1000000,1000001,2147483647); } } {11} do_test rowid-7.7 { execsql { INSERT INTO t2(b) VALUES(22); INSERT INTO t2(b) VALUES(33); INSERT INTO t2(b) VALUES(44); INSERT INTO t2(b) VALUES(55); SELECT b FROM t2 WHERE a NOT IN(1,2,1000000,1000001,2147483647) ORDER BY b; } } {11 22 33 44 55}}do_test rowid-7.8 { execsql { DELETE FROM t2 WHERE a!=2; INSERT INTO t2(b) VALUES(111); SELECT * FROM t2; }} {2 66 3 111}ifcapable {trigger} {# Make sure AFTER triggers that do INSERTs do not change the last_insert_rowid.# Ticket #290#do_test rowid-8.1 { execsql { CREATE TABLE t3(a integer primary key); CREATE TABLE t4(x); INSERT INTO t4 VALUES(1); CREATE TRIGGER r3 AFTER INSERT on t3 FOR EACH ROW BEGIN INSERT INTO t4 VALUES(NEW.a+10); END; SELECT * FROM t3; }} {}do_test rowid-8.2 { execsql { SELECT rowid, * FROM t4; }} {1 1}do_test rowid-8.3 { execsql { INSERT INTO t3 VALUES(123); SELECT last_insert_rowid(); }} {123}do_test rowid-8.4 { execsql { SELECT * FROM t3; }} {123}do_test rowid-8.5 { execsql { SELECT rowid, * FROM t4; }} {1 1 2 133}do_test rowid-8.6 { execsql { INSERT INTO t3 VALUES(NULL); SELECT last_insert_rowid(); }} {124}do_test rowid-8.7 { execsql { SELECT * FROM t3; }} {123 124}do_test rowid-8.8 { execsql { SELECT rowid, * FROM t4; }} {1 1 2 133 3 134}} ;# endif trigger# If triggers are not enable, simulate their effect for the tests that# follow.ifcapable {!trigger} { execsql { CREATE TABLE t3(a integer primary key); INSERT INTO t3 VALUES(123); INSERT INTO t3 VALUES(124); }}# ticket #377: Comparison between integer primiary key and floating point# values.#do_test rowid-9.1 { execsql { SELECT * FROM t3 WHERE a<123.5 }} {123}do_test rowid-9.2 { execsql { SELECT * FROM t3 WHERE a<124.5 }} {123 124}do_test rowid-9.3 { execsql { SELECT * FROM t3 WHERE a>123.5 }} {124}do_test rowid-9.4 { execsql { SELECT * FROM t3 WHERE a>122.5 }} {123 124}do_test rowid-9.5 { execsql { SELECT * FROM t3 WHERE a==123.5 }} {}do_test rowid-9.6 { execsql { SELECT * FROM t3 WHERE a==123.000 }} {123}do_test rowid-9.7 { execsql { SELECT * FROM t3 WHERE a>100.5 AND a<200.5 }} {123 124}do_test rowid-9.8 { execsql { SELECT * FROM t3 WHERE a>'xyz'; }} {}do_test rowid-9.9 { execsql { SELECT * FROM t3 WHERE a<'xyz'; }} {123 124}do_test rowid-9.10 { execsql { SELECT * FROM t3 WHERE a>=122.9 AND a<=123.1 }} {123}# Ticket #567. Comparisons of ROWID or integery primary key against# floating point numbers still do not always work.#do_test rowid-10.1 { execsql { CREATE TABLE t5(a); INSERT INTO t5 VALUES(1); INSERT INTO t5 VALUES(2); INSERT INTO t5 SELECT a+2 FROM t5; INSERT INTO t5 SELECT a+4 FROM t5; SELECT rowid, * FROM t5; }} {1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8}do_test rowid-10.2 { execsql {SELECT rowid, a FROM t5 WHERE rowid>=5.5}} {6 6 7 7 8 8}do_test rowid-10.3 { execsql {SELECT rowid, a FROM t5 WHERE rowid>=5.0}} {5 5 6 6 7 7 8 8}do_test rowid-10.4 { execsql {SELECT rowid, a FROM t5 WHERE rowid>5.5}} {6 6 7 7 8 8}do_test rowid-10.3.2 { execsql {SELECT rowid, a FROM t5 WHERE rowid>5.0}} {6 6 7 7 8 8}do_test rowid-10.5 { execsql {SELECT rowid, a FROM t5 WHERE 5.5<=rowid}} {6 6 7 7 8 8}do_test rowid-10.6 { execsql {SELECT rowid, a FROM t5 WHERE 5.5<rowid}} {6 6 7 7 8 8}do_test rowid-10.7 { execsql {SELECT rowid, a FROM t5 WHERE rowid<=5.5}} {1 1 2 2 3 3 4 4 5 5}do_test rowid-10.8 { execsql {SELECT rowid, a FROM t5 WHERE rowid<5.5}} {1 1 2 2 3 3 4 4 5 5}do_test rowid-10.9 { execsql {SELECT rowid, a FROM t5 WHERE 5.5>=rowid}} {1 1 2 2 3 3 4 4 5 5}do_test rowid-10.10 { execsql {SELECT rowid, a FROM t5 WHERE 5.5>rowid}} {1 1 2 2 3 3 4 4 5 5}do_test rowid-10.11 { execsql {SELECT rowid, a FROM t5 WHERE rowid>=5.5 ORDER BY rowid DESC}} {8 8 7 7 6 6}do_test rowid-10.11.2 { execsql {SELECT rowid, a FROM t5 WHERE rowid>=5.0 ORDER BY rowid DESC}} {8 8 7 7 6 6 5 5}do_test rowid-10.12 { execsql {SELECT rowid, a FROM t5 WHERE rowid>5.5 ORDER BY rowid DESC}} {8 8 7 7 6 6}do_test rowid-10.12.2 { execsql {SELECT rowid, a FROM t5 WHERE rowid>5.0 ORDER BY rowid DESC}} {8 8 7 7 6 6}do_test rowid-10.13 { execsql {SELECT rowid, a FROM t5 WHERE 5.5<=rowid ORDER BY rowid DESC}} {8 8 7 7 6 6}do_test rowid-10.14 { execsql {SELECT rowid, a FROM t5 WHERE 5.5<rowid ORDER BY rowid DESC}} {8 8 7 7 6 6}do_test rowid-10.15 { execsql {SELECT rowid, a FROM t5 WHERE rowid<=5.5 ORDER BY rowid DESC}} {5 5 4 4 3 3 2 2 1 1}do_test rowid-10.16 { execsql {SELECT rowid, a FROM t5 WHERE rowid<5.5 ORDER BY rowid DESC}} {5 5 4 4 3 3 2 2 1 1}do_test rowid-10.17 { execsql {SELECT rowid, a FROM t5 WHERE 5.5>=rowid ORDER BY rowid DESC}} {5 5 4 4 3 3 2 2 1 1}do_test rowid-10.18 { execsql {SELECT rowid, a FROM t5 WHERE 5.5>rowid ORDER BY rowid DESC}} {5 5 4 4 3 3 2 2 1 1}do_test rowid-10.30 { execsql { CREATE TABLE t6(a); INSERT INTO t6(rowid,a) SELECT -a,a FROM t5; SELECT rowid, * FROM t6; }} {-8 8 -7 7 -6 6 -5 5 -4 4 -3 3 -2 2 -1 1}do_test rowid-10.31.1 { execsql {SELECT rowid, a FROM t6 WHERE rowid>=-5.5}} {-5 5 -4 4 -3 3 -2 2 -1 1}do_test rowid-10.31.2 { execsql {SELECT rowid, a FROM t6 WHERE rowid>=-5.0}} {-5 5 -4 4 -3 3 -2 2 -1 1}do_test rowid-10.32.1 { execsql {SELECT rowid, a FROM t6 WHERE rowid>=-5.5 ORDER BY rowid DESC}} {-1 1 -2 2 -3 3 -4 4 -5 5}do_test rowid-10.32.1 { execsql {SELECT rowid, a FROM t6 WHERE rowid>=-5.0 ORDER BY rowid DESC}} {-1 1 -2 2 -3 3 -4 4 -5 5}do_test rowid-10.33 { execsql {SELECT rowid, a FROM t6 WHERE -5.5<=rowid}} {-5 5 -4 4 -3 3 -2 2 -1 1}do_test rowid-10.34 { execsql {SELECT rowid, a FROM t6 WHERE -5.5<=rowid ORDER BY rowid DESC}} {-1 1 -2 2 -3 3 -4 4 -5 5}do_test rowid-10.35.1 { execsql {SELECT rowid, a FROM t6 WHERE rowid>-5.5}} {-5 5 -4 4 -3 3 -2 2 -1 1}do_test rowid-10.35.2 { execsql {SELECT rowid, a FROM t6 WHERE rowid>-5.0}} {-4 4 -3 3 -2 2 -1 1}do_test rowid-10.36.1 { execsql {SELECT rowid, a FROM t6 WHERE rowid>-5.5 ORDER BY rowid DESC}} {-1 1 -2 2 -3 3 -4 4 -5 5}do_test rowid-10.36.2 { execsql {SELECT rowid, a FROM t6 WHERE rowid>-5.0 ORDER BY rowid DESC}} {-1 1 -2 2 -3 3 -4 4}do_test rowid-10.37 { execsql {SELECT rowid, a FROM t6 WHERE -5.5<rowid}} {-5 5 -4 4 -3 3 -2 2 -1 1}do_test rowid-10.38 { execsql {SELECT rowid, a FROM t6 WHERE -5.5<rowid ORDER BY rowid DESC}} {-1 1 -2 2 -3 3 -4 4 -5 5}do_test rowid-10.39 { execsql {SELECT rowid, a FROM t6 WHERE rowid<=-5.5}} {-8 8 -7 7 -6 6}do_test rowid-10.40 { execsql {SELECT rowid, a FROM t6 WHERE rowid<=-5.5 ORDER BY rowid DESC}} {-6 6 -7 7 -8 8}do_test rowid-10.41 { execsql {SELECT rowid, a FROM t6 WHERE -5.5>=rowid}} {-8 8 -7 7 -6 6}do_test rowid-10.42 { execsql {SELECT rowid, a FROM t6 WHERE -5.5>=rowid ORDER BY rowid DESC}} {-6 6 -7 7 -8 8}do_test rowid-10.43 { execsql {SELECT rowid, a FROM t6 WHERE rowid<-5.5}} {-8 8 -7 7 -6 6}do_test rowid-10.44 { execsql {SELECT rowid, a FROM t6 WHERE rowid<-5.5 ORDER BY rowid DESC}} {-6 6 -7 7 -8 8}do_test rowid-10.44 { execsql {SELECT rowid, a FROM t6 WHERE -5.5>rowid}} {-8 8 -7 7 -6 6}do_test rowid-10.46 { execsql {SELECT rowid, a FROM t6 WHERE -5.5>rowid ORDER BY rowid DESC}} {-6 6 -7 7 -8 8}# Comparison of rowid against string values.#do_test rowid-11.1 { execsql {SELECT rowid, a FROM t5 WHERE rowid>'abc'}} {}do_test rowid-11.2 { execsql {SELECT rowid, a FROM t5 WHERE rowid>='abc'}} {}do_test rowid-11.3 { execsql {SELECT rowid, a FROM t5 WHERE rowid<'abc'}} {1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8}do_test rowid-11.4 { execsql {SELECT rowid, a FROM t5 WHERE rowid<='abc'}} {1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8}# Test the automatic generation of rowids when the table already contains# a rowid with the maximum value.#do_test rowid-12.1 { execsql { CREATE TABLE t7(x INTEGER PRIMARY KEY, y); INSERT INTO t7 VALUES(9223372036854775807,'a'); SELECT y FROM t7; }} {a}do_test rowid-12.2 { execsql { INSERT INTO t7 VALUES(NULL,'b'); SELECT y FROM t7; }} {b a}finish_test
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -