# # UPDATE statements for tables with keys # --source have_engine.inc --source have_default_index.inc --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings --let $create_definition = a $int_col, b $char_col, INDEX(b) --source create_table.inc if ($mysql_errname) { --let $my_last_stmt = $create_statement --let $functionality = Non-unique keys --source unexpected_result.inc } if (!$mysql_errname) { INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'x'),(7,'y'),(8,'z'); UPDATE t1 SET a=100, b='f' WHERE b IN ('b','c'); if ($mysql_errname) { --let $functionality = UPDATE --source unexpected_result.inc } if (!$mysql_errname) { UPDATE t1 SET b='m' WHERE b = 'f'; UPDATE t1 SET b='z' WHERE a < 2; UPDATE t1 SET b=''; --sorted_result SELECT a,b FROM t1; } DROP TABLE t1; } --let $create_definition = a $int_col, b $char_col, UNIQUE INDEX(a) --source create_table.inc if ($mysql_errname) { --let $my_last_stmt = $create_statement --let $functionality = Unique keys --source unexpected_result.inc } if (!$mysql_errname) { INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(0,'f'),(100,'a'); UPDATE t1 SET a=a+200; if ($mysql_errname) { --let $functionality = UPDATE --source unexpected_result.inc } if (!$mysql_errname) { UPDATE t1 SET a=0 WHERE a > 250; --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY UPDATE t1 SET a=205 WHERE a=200; --source check_errors.inc UPDATE t1 SET a=12345 ORDER BY a, b LIMIT 1; --sorted_result SELECT a,b FROM t1; # We'll check that the next update causes an error, # but won't check the result because it might be different depending # on whether the engine is transactional or not --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY UPDATE t1 SET a=80 WHERE a IN (202,203); --source check_errors.inc } DROP TABLE t1; } --let $create_definition = a $int_col, b $char_col, UNIQUE INDEX(a,b) --source create_table.inc if ($mysql_errname) { --let $my_last_stmt = $create_statement --let $functionality = Unique keys or multi-part keys --source unexpected_result.inc } if (!$mysql_errname) { INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(100,'a'),(6,'f'); UPDATE t1 SET a=6 WHERE a=3; if ($mysql_errname) { --let $functionality = UPDATE --source unexpected_result.inc } if (!$mysql_errname) { --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY UPDATE t1 SET a=100 WHERE a=1; --source check_errors.inc --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY UPDATE t1 SET a=4, b='d' WHERE b='f'; --source check_errors.inc UPDATE t1 SET a=a+1; --sorted_result SELECT a,b FROM t1; --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY UPDATE t1 SET b='z'; --source check_errors.inc } DROP TABLE t1; } --let $create_definition = a $int_col PRIMARY KEY, b $char_col --source create_table.inc if ($mysql_errname) { --let $my_last_stmt = $create_statement --let $functionality = Primary key --source unexpected_result.inc } if (!$mysql_errname) { INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(0,'f'),(100,'a'); UPDATE t1 SET a=a+200; if ($mysql_errname) { --let $functionality = UPDATE --source unexpected_result.inc } if (!$mysql_errname) { UPDATE t1 SET a=0 WHERE a > 250; --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY UPDATE t1 SET a=205 WHERE a=200; --source check_errors.inc UPDATE t1 SET a=12345 ORDER BY a DESC, b LIMIT 1; --sorted_result SELECT a,b FROM t1; # We'll check that the next update causes an error, # but won't check the result because it might be different depending # on whether the engine is transactional or not --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY UPDATE t1 SET a=80 WHERE a IN (202,203); --source check_errors.inc } DROP TABLE t1; } --source cleanup_engine.inc