⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 update.test

📁 sqlite-3.4.1,嵌入式数据库.是一个功能强大的开源数据库,给学习和研发以及小型公司的发展带来了全所未有的好处.
💻 TEST
📖 第 1 页 / 共 2 页
字号:
} {8 88 8 256 8 888}# Repeat the previous sequence of tests with multiple# indices#do_test update-7.0 {  execsql {CREATE INDEX idx2 ON test1(f2)}  execsql {CREATE INDEX idx3 ON test1(f1,f2)}  execsql {SELECT * FROM test1 ORDER BY f1,f2}} {6 64 7 128 8 88 8 256 8 888 9 512 10 1024 77 128 777 128}do_test update-7.1 {  execsql {UPDATE test1 SET f2=f2+1 WHERE f1==8}  execsql {SELECT * FROM test1 ORDER BY f1,f2}} {6 64 7 128 8 89 8 257 8 889 9 512 10 1024 77 128 777 128}do_test update-7.1.1 {  execsql {SELECT * FROM test1 WHERE f1==8 ORDER BY f1,f2}} {8 89 8 257 8 889}do_test update-7.1.2 {  execsql {SELECT * FROM test1 WHERE f2==89 ORDER BY f1,f2}} {8 89}do_test update-7.1.3 {  execsql {SELECT * FROM test1 WHERE f1==88 ORDER BY f1,f2}} {}do_test update-7.2 {  execsql {UPDATE test1 SET f2=f2-1 WHERE f1==8 and f2>800}  execsql {SELECT * FROM test1 ORDER BY f1,f2}} {6 64 7 128 8 89 8 257 8 888 9 512 10 1024 77 128 777 128}do_test update-7.3 {  # explain {UPDATE test1 SET f2=f2-1 WHERE f1==8 and F2<300}  execsql {UPDATE test1 SET f2=f2-1 WHERE f1==8 and f2<800}  execsql {SELECT * FROM test1 ORDER BY f1,f2}} {6 64 7 128 8 88 8 256 8 888 9 512 10 1024 77 128 777 128}do_test update-7.3.1 {  execsql {SELECT * FROM test1 WHERE f1==8 ORDER BY f1,f2}} {8 88 8 256 8 888}do_test update-7.3.2 {  execsql {SELECT * FROM test1 WHERE f2==89 ORDER BY f1,f2}} {}do_test update-7.3.3 {  execsql {SELECT * FROM test1 WHERE f2==88 ORDER BY f1,f2}} {8 88}do_test update-7.4 {  execsql {UPDATE test1 SET f1=f1+1 WHERE f2==128}  execsql {SELECT * FROM test1 ORDER BY f1,f2}} {6 64 8 88 8 128 8 256 8 888 9 512 10 1024 78 128 778 128}do_test update-7.4.1 {  execsql {SELECT * FROM test1 WHERE f1==78 ORDER BY f1,f2}} {78 128}do_test update-7.4.2 {  execsql {SELECT * FROM test1 WHERE f1==778 ORDER BY f1,f2}} {778 128}do_test update-7.4.3 {  execsql {SELECT * FROM test1 WHERE f1==8 ORDER BY f1,f2}} {8 88 8 128 8 256 8 888}do_test update-7.5 {  execsql {UPDATE test1 SET f1=f1-1 WHERE f1>100 and f2==128}  execsql {SELECT * FROM test1 ORDER BY f1,f2}} {6 64 8 88 8 128 8 256 8 888 9 512 10 1024 78 128 777 128}do_test update-7.5.1 {  execsql {SELECT * FROM test1 WHERE f1==78 ORDER BY f1,f2}} {78 128}do_test update-7.5.2 {  execsql {SELECT * FROM test1 WHERE f1==778 ORDER BY f1,f2}} {}do_test update-7.5.3 {  execsql {SELECT * FROM test1 WHERE f1==777 ORDER BY f1,f2}} {777 128}do_test update-7.5.4 {  execsql {SELECT * FROM test1 WHERE f1==8 ORDER BY f1,f2}} {8 88 8 128 8 256 8 888}do_test update-7.6 {  execsql {UPDATE test1 SET f1=f1-1 WHERE f1<=100 and f2==128}  execsql {SELECT * FROM test1 ORDER BY f1,f2}} {6 64 7 128 8 88 8 256 8 888 9 512 10 1024 77 128 777 128}do_test update-7.6.1 {  execsql {SELECT * FROM test1 WHERE f1==77 ORDER BY f1,f2}} {77 128}do_test update-7.6.2 {  execsql {SELECT * FROM test1 WHERE f1==778 ORDER BY f1,f2}} {}do_test update-7.6.3 {  execsql {SELECT * FROM test1 WHERE f1==777 ORDER BY f1,f2}} {777 128}do_test update-7.6.4 {  execsql {SELECT * FROM test1 WHERE f1==8 ORDER BY f1,f2}} {8 88 8 256 8 888}# Error messages#do_test update-9.1 {  set v [catch {execsql {    UPDATE test1 SET x=11 WHERE f1=1025  }} msg]  lappend v $msg} {1 {no such column: x}}do_test update-9.2 {  set v [catch {execsql {    UPDATE test1 SET f1=x(11) WHERE f1=1025  }} msg]  lappend v $msg} {1 {no such function: x}}do_test update-9.3 {  set v [catch {execsql {    UPDATE test1 SET f1=11 WHERE x=1025  }} msg]  lappend v $msg} {1 {no such column: x}}do_test update-9.4 {  set v [catch {execsql {    UPDATE test1 SET f1=11 WHERE x(f1)=1025  }} msg]  lappend v $msg} {1 {no such function: x}}# Try doing updates on a unique column where the value does not# really change.#do_test update-10.1 {  execsql {    DROP TABLE test1;    CREATE TABLE t1(       a integer primary key,       b UNIQUE,        c, d,       e, f,       UNIQUE(c,d)    );    INSERT INTO t1 VALUES(1,2,3,4,5,6);    INSERT INTO t1 VALUES(2,3,4,4,6,7);    SELECT * FROM t1  }} {1 2 3 4 5 6 2 3 4 4 6 7}do_test update-10.2 {  catchsql {    UPDATE t1 SET a=1, e=9 WHERE f=6;    SELECT * FROM t1;  }} {0 {1 2 3 4 9 6 2 3 4 4 6 7}}do_test update-10.3 {  catchsql {    UPDATE t1 SET a=1, e=10 WHERE f=7;    SELECT * FROM t1;  }} {1 {PRIMARY KEY must be unique}}do_test update-10.4 {  catchsql {    SELECT * FROM t1;  }} {0 {1 2 3 4 9 6 2 3 4 4 6 7}}do_test update-10.5 {  catchsql {    UPDATE t1 SET b=2, e=11 WHERE f=6;    SELECT * FROM t1;  }} {0 {1 2 3 4 11 6 2 3 4 4 6 7}}do_test update-10.6 {  catchsql {    UPDATE t1 SET b=2, e=12 WHERE f=7;    SELECT * FROM t1;  }} {1 {column b is not unique}}do_test update-10.7 {  catchsql {    SELECT * FROM t1;  }} {0 {1 2 3 4 11 6 2 3 4 4 6 7}}do_test update-10.8 {  catchsql {    UPDATE t1 SET c=3, d=4, e=13 WHERE f=6;    SELECT * FROM t1;  }} {0 {1 2 3 4 13 6 2 3 4 4 6 7}}do_test update-10.9 {  catchsql {    UPDATE t1 SET c=3, d=4, e=14 WHERE f=7;    SELECT * FROM t1;  }} {1 {columns c, d are not unique}}do_test update-10.10 {  catchsql {    SELECT * FROM t1;  }} {0 {1 2 3 4 13 6 2 3 4 4 6 7}}# Make sure we can handle a subquery in the where clause.#ifcapable subquery {  do_test update-11.1 {    execsql {      UPDATE t1 SET e=e+1 WHERE b IN (SELECT b FROM t1);      SELECT b,e FROM t1;    }  } {2 14 3 7}  do_test update-11.2 {    execsql {      UPDATE t1 SET e=e+1 WHERE a IN (SELECT a FROM t1);      SELECT a,e FROM t1;    }  } {1 15 2 8}}integrity_check update-12.1# Ticket 602.  Updates should occur in the same order as the records# were discovered in the WHERE clause.#do_test update-13.1 {  execsql {    BEGIN;    CREATE TABLE t2(a);    INSERT INTO t2 VALUES(1);    INSERT INTO t2 VALUES(2);    INSERT INTO t2 SELECT a+2 FROM t2;    INSERT INTO t2 SELECT a+4 FROM t2;    INSERT INTO t2 SELECT a+8 FROM t2;    INSERT INTO t2 SELECT a+16 FROM t2;    INSERT INTO t2 SELECT a+32 FROM t2;    INSERT INTO t2 SELECT a+64 FROM t2;    INSERT INTO t2 SELECT a+128 FROM t2;    INSERT INTO t2 SELECT a+256 FROM t2;    INSERT INTO t2 SELECT a+512 FROM t2;    INSERT INTO t2 SELECT a+1024 FROM t2;    COMMIT;    SELECT count(*) FROM t2;  }} {2048}do_test update-13.2 {  execsql {    SELECT count(*) FROM t2 WHERE a=rowid;  }} {2048}do_test update-13.3 {  execsql {    UPDATE t2 SET rowid=rowid-1;    SELECT count(*) FROM t2 WHERE a=rowid+1;  }} {2048}do_test update-13.3 {  execsql {    UPDATE t2 SET rowid=rowid+10000;    UPDATE t2 SET rowid=rowid-9999;    SELECT count(*) FROM t2 WHERE a=rowid;  }} {2048}do_test update-13.4 {  execsql {    BEGIN;    INSERT INTO t2 SELECT a+2048 FROM t2;    INSERT INTO t2 SELECT a+4096 FROM t2;    INSERT INTO t2 SELECT a+8192 FROM t2;    SELECT count(*) FROM t2 WHERE a=rowid;    COMMIT;  }} 16384do_test update-13.5 {  execsql {    UPDATE t2 SET rowid=rowid-1;    SELECT count(*) FROM t2 WHERE a=rowid+1;  }} 16384integrity_check update-13.6ifcapable {trigger} {# Test for proper detection of malformed WHEN clauses on UPDATE triggers.#do_test update-14.1 {  execsql {    CREATE TABLE t3(a,b,c);    CREATE TRIGGER t3r1 BEFORE UPDATE on t3 WHEN nosuchcol BEGIN      SELECT 'illegal WHEN clause';    END;  }} {}do_test update-14.2 {  catchsql {    UPDATE t3 SET a=1;  }} {1 {no such column: nosuchcol}}do_test update-14.3 {  execsql {    CREATE TABLE t4(a,b,c);    CREATE TRIGGER t4r1 AFTER UPDATE on t4 WHEN nosuchcol BEGIN      SELECT 'illegal WHEN clause';    END;  }} {}do_test update-14.4 {  catchsql {    UPDATE t4 SET a=1;  }} {1 {no such column: nosuchcol}}} ;# ifcapable {trigger}finish_test

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -