| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
CONNECT BY PRIOR ... to search tree-like (hierarchical)
structures.
SUM(DISTINCT).
INSERT SQL_CONCURRENT and mysqld --concurrent-insert to do
a concurrent insert at the end of a table if the table is read-locked.
UPDATE statements. For example:
UPDATE TABLE foo SET @a=a+b,a=@a, b=@a+c.
GROUP BY, as in the following example:
SELECT id, @a:=COUNT(*), SUM(sum_col)/@a FROM table_name GROUP BY id.
IMAGE option to LOAD DATA INFILE to not update
TIMESTAMP and AUTO_INCREMENT fields.
LOAD DATA INFILE ... UPDATE syntax that works like this:
LOAD DATA INFILE ... REPLACE INTO.
LOAD DATA INFILE understand syntax like:
LOAD DATA INFILE 'file_name.txt' INTO TABLE tbl_name
TEXT_FIELDS (text_field1, text_field2, text_field3)
SET table_field1=CONCAT(text_field1, text_field2),
table_field3=23
IGNORE text_field3
|
SET type columns:
ADD_TO_SET(value,set)
REMOVE_FROM_SET(value,set)
mysql in the middle of a query, you should open
another connection and kill the old running query.
Alternatively, an attempt should be made to detect this in the server.
SHOW INFO FROM tbl_name for basic table information
should be implemented.
SELECT a FROM table_name1 LEFT JOIN table_name2 USING (a); in this
case a is assumed to come from the table_name1 table.
DELETE and REPLACE options to the UPDATE statement
(this will delete rows when one gets a duplicate key error while updating).
DATETIME to store fractions of seconds.
regexp library instead of the current
one (the new library should be much faster than the current one).
DEFAULT values to columns. Produce an error for
any INSERT statement that is missing a value for a column that has no
DEFAULT.
ANY(), EVERY(), and SOME() group functions. In
standard SQL, these work only on boolean columns, but we can extend these to
work on any columns or expressions by treating 0 values as FALSE and non-zero
values as TRUE.
MAX(column) to be the same as the column type:
mysql> CREATE TABLE t1 (a DATE); mysql> INSERT INTO t1 VALUES (NOW()); mysql> CREATE TABLE t2 SELECT MAX(a) FROM t1; mysql> SHOW COLUMNS FROM t2; |
MyISAM
recovery at the same time.
INSERT ... SELECT to optionally use concurrent inserts.
SELECT MIN(column) ... GROUP BY.
long_query_time with a granularity
in microseconds.
myisampack code into the server so that it can perform
PACK or COMPRESS operations.
INSERT/DELETE/UPDATE so that we
can gracefully recover if the index file gets full.
ALTER TABLE on a table that is symlinked to another
disk, create temporary tables on that disk.
DATE/DATETIME type that handles time zone information
properly, to make dealing with dates in different time zones easier.
configure so that one can compile all libraries (like MyISAM)
without threads.
LIMIT arguments, for example,
LIMIT @a,@b.
mysql to a web browser.
LOCK DATABASES (with various options).
SHOW STATUS. Records reads and
updates. Selects on a single table and selects with joins. Mean number of
tables in select. Number of ORDER BY and GROUP BY queries.
mysqladmin copy database new-database; this requires a COPY
operation to be added to mysqld.
SHOW HOSTS for printing information about the hostname cache.
NULL for calculated columns.
Item_copy_string on numerical values to avoid
number->string->number conversion in case of:
SELECT COUNT(*)*(id+0) FROM table_name GROUP BY id
ALTER TABLE doesn't abort clients
that execute INSERT DELAYED.
UPDATE clause,
they contain the old values from before the update started.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |