blob: a98b8023e9c7819cb940f2caa365936e2074d140 [file] [log] [blame]
ij> AUTOCOMMIT OFF;
ij> -- MODULE DML079
-- SQL Test Suite, V6.0, Interactive SQL, dml079.sql
-- 59-byte ID
-- TEd Version #
-- AUTHORIZATION HU
set schema HU;
0 rows inserted/updated/deleted
ij> --O SELECT USER FROM HU.ECCO;
VALUES USER;
1
--------------------------------------------------------------------------------------------------------------------------------
HU
ij> -- RERUN if USER value does not match preceding AUTHORIZATION comment
-- date_time print
-- TEST:0451 UNIQUEness is case sensitive!
UPDATE STAFF SET EMPNUM = 'e2'
WHERE EMPNUM = 'E4';
1 row inserted/updated/deleted
ij> -- PASS:0451 If 1 row updated?
INSERT INTO STAFF(EMPNUM)
VALUES ('E1');
ERROR 23505: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'STAFF_UNIQUE' defined on 'STAFF'.
ij> -- PASS:0451 If ERROR, unique constraint, 0 rows inserted?
INSERT INTO STAFF(EMPNUM)
VALUES ('e1');
1 row inserted/updated/deleted
ij> -- PASS:0451 If 1 row inserted?
UPDATE STAFF
SET EMPNUM = 'E1' WHERE EMPNUM = 'e1';
ERROR 23505: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'STAFF_UNIQUE' defined on 'STAFF'.
ij> -- PASS:0451 If ERROR, unique constraint, 0 rows updated?
SELECT * FROM STAFF;
EM&|EMPNAME |GRADE|CITY
----------------------------------------------
E1 |Alice |12 |Deale
E2 |Betty |10 |Vienna
E3 |Carmen |13 |Vienna
e2 |Don |12 |Deale
E5 |Ed |13 |Akron
e1 |NULL |NULL |NULL
ij> -- PASS:0451 If 6 rows are selected?
-- PASS:0451 If EMPNUMs are 'e1','e2','E1','E2','E3','E5'?
INSERT INTO WORKS (EMPNUM,PNUM)
VALUES ('e1','p2');
1 row inserted/updated/deleted
ij> -- PASS:0451 If 1 row inserted?
INSERT INTO WORKS (EMPNUM,PNUM)
VALUES ('E1','p2');
1 row inserted/updated/deleted
ij> -- PASS:0451 If 1 row inserted?
INSERT INTO WORKS (EMPNUM,PNUM)
VALUES ('E1','P2');
ERROR 23505: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'WORKSC1' defined on 'WORKS'.
ij> -- PASS:0451 If ERROR, unique constraint, 0 rows inserted?
INSERT INTO WORKS (EMPNUM,PNUM)
VALUES ('e1', 'P2');
1 row inserted/updated/deleted
ij> -- PASS:0451 If 1 row inserted?
UPDATE WORKS
SET EMPNUM = 'E1'
WHERE PNUM = 'P5' AND EMPNUM = 'E4';
ERROR 23505: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'WORKSC1' defined on 'WORKS'.
ij> -- PASS:0451 If ERROR, unique constraint, 0 rows updated?
UPDATE WORKS
SET EMPNUM = 'e1'
WHERE PNUM = 'P5' AND EMPNUM = 'E4';
1 row inserted/updated/deleted
ij> -- PASS:0451 If 1 row updated?
UPDATE WORKS
SET PNUM = 'P4'
WHERE PNUM = 'P2' AND EMPNUM = 'E4';
ERROR 23505: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'WORKSC1' defined on 'WORKS'.
ij> -- PASS:0451 If ERROR, unique constraint, 0 rows updated?
UPDATE WORKS
SET PNUM = 'p4'
WHERE PNUM = 'P2' AND EMPNUM = 'E4';
1 row inserted/updated/deleted
ij> -- PASS:0451 If 1 row updated?
SELECT * FROM WORKS
ORDER BY EMPNUM, PNUM;
EM&|PN&|HOURS
--------------
E1 |P1 |40
E1 |P2 |20
E1 |P3 |80
E1 |P4 |20
E1 |P5 |12
E1 |P6 |12
E1 |p2 |NULL
E2 |P1 |40
E2 |P2 |80
E3 |P2 |20
E4 |P4 |40
E4 |p4 |20
e1 |P2 |NULL
e1 |P5 |80
e1 |p2 |NULL
ij> -- PASS:0451 If 15 rows are selected?
-- PASS:0451 If EMPNUM/PNUM values include ?
-- PASS:0451 e1/p2, E1/p2, e1/P2, e1/P5, E4/p4 ?
-- PASS:0451 If no EMPNUM/PNUM values are duplicates ?
ROLLBACK WORK;
ij> -- END TEST >>> 0451 <<< END TEST
-- *********************************************
-- TEST:0452 Order of precedence, left-to-right in UNION [ALL]!
SELECT EMPNAME FROM STAFF
UNION
SELECT EMPNAME FROM STAFF
UNION ALL
SELECT EMPNAME FROM STAFF;
EMPNAME
--------------------
Alice
Betty
Carmen
Don
Ed
Alice
Betty
Carmen
Don
Ed
ij> -- PASS:0452 If 10 rows selected?
SELECT EMPNAME FROM STAFF
UNION ALL
SELECT EMPNAME FROM STAFF
UNION
SELECT EMPNAME FROM STAFF;
EMPNAME
--------------------
Alice
Betty
Carmen
Don
Ed
ij> -- PASS:0452 If 5 rows selected?
-- END TEST >>> 0452 <<< END TEST
-- *********************************************
-- TEST:0453 NULL with empty subquery of ALL, SOME, ANY!
UPDATE PROJ
SET CITY = NULL WHERE PNAME = 'IRM';
1 row inserted/updated/deleted
ij> --O SELECT COUNT(*)
SELECT CITY
FROM PROJ
WHERE CITY IS NULL;
CITY
---------------
NULL
ij> -- PASS:0453 If count = 1?
--O SELECT COUNT(*)
SELECT CITY
FROM PROJ
WHERE CITY = ALL (SELECT CITY
FROM STAFF
WHERE EMPNUM = 'E8');
CITY
---------------
Deale
Vienna
Tampa
Deale
NULL
Deale
ij> -- PASS:0453 If count = 6?
--O SELECT COUNT(*)
SELECT CITY
FROM PROJ
WHERE CITY <> ALL (SELECT CITY
FROM STAFF
WHERE EMPNUM = 'E8');
CITY
---------------
Deale
Vienna
Tampa
Deale
NULL
Deale
ij> -- PASS:0453 If count = 6?
--O SELECT COUNT(*)
SELECT CITY
FROM PROJ
WHERE CITY = ANY (SELECT CITY
FROM STAFF
WHERE EMPNUM = 'E8');
CITY
---------------
ij> -- PASS:0453 If count = 0?
--O SELECT COUNT(*)
SELECT CITY
FROM PROJ
WHERE CITY <> ANY (SELECT CITY
FROM STAFF
WHERE EMPNUM = 'E8');
CITY
---------------
ij> -- PASS:0453 If count = 0?
--O SELECT COUNT(*)
SELECT CITY
FROM PROJ
WHERE CITY = SOME (SELECT CITY
FROM STAFF
WHERE EMPNUM = 'E8');
CITY
---------------
ij> -- PASS:0453 If count = 0?
--O SELECT COUNT(*)
SELECT CITY
FROM PROJ
WHERE CITY <> SOME (SELECT CITY
FROM STAFF
WHERE EMPNUM = 'E8');
CITY
---------------
ij> -- PASS:0453 If count = 0?
ROLLBACK WORK;
ij> -- END TEST >>> 0453 <<< END TEST
-- *************************************************////END-OF-MODULE
;
ij>