DEFAULT
Синтаксис
DEFAULT(col_name)
Описание
Возвращает значение по умолчанию для столбца таблицы. Если столбец не имеет значения по умолчанию (и не является NULLABLE — для NULLABLE полей значение по умолчанию NULL), возвращается ошибка.
Для целочисленных столбцов с AUTO_INCREMENT, возвращается 0.
При использовании DEFAULT в качестве значения для установки в операторе INSERT или UPDATE, вы можете использовать ключевое слово DEFAULT без скобок и аргумента для ссылки на столбец в контексте. Вы можете использовать DEFAULT только как ключевое слово, если оно используется отдельно без окружающих выражений или функций.
Примеры
Выбор только значений, отличных от значений по умолчанию для столбца:
SELECT i FROM t WHERE i != DEFAULT(i);
Обновление значений на единицу больше значения по умолчанию:
UPDATE t SET i = DEFAULT(i)+1 WHERE i < 100;
При указании значения по умолчанию точно в UPDATE или INSERT, вы можете опустить аргумент:
INSERT INTO t (i) VALUES (DEFAULT); UPDATE t SET i = DEFAULT WHERE i < 100;
CREATE OR REPLACE TABLE t ( i INT NOT NULL AUTO_INCREMENT, j INT NOT NULL, k INT DEFAULT 3, l INT NOT NULL DEFAULT 4, m INT, PRIMARY KEY (i) ); DESC t; +-------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+----------------+ | i | int(11) | NO | PRI | NULL | auto_increment | | j | int(11) | NO | | NULL | | | k | int(11) | YES | | 3 | | | l | int(11) | NO | | 4 | | | m | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+----------------+ INSERT INTO t (j) VALUES (1); INSERT INTO t (j,m) VALUES (2,2); INSERT INTO t (j,l,m) VALUES (3,3,3); SELECT * FROM t; +---+---+------+---+------+ | i | j | k | l | m | +---+---+------+---+------+ | 1 | 1 | 3 | 4 | NULL | | 2 | 2 | 3 | 4 | 2 | | 3 | 3 | 3 | 3 | 3 | +---+---+------+---+------+ SELECT DEFAULT(i), DEFAULT(k), DEFAULT (l), DEFAULT(m) FROM t; +------------+------------+-------------+------------+ | DEFAULT(i) | DEFAULT(k) | DEFAULT (l) | DEFAULT(m) | +------------+------------+-------------+------------+ | 0 | 3 | 4 | NULL | | 0 | 3 | 4 | NULL | | 0 | 3 | 4 | NULL | +------------+------------+-------------+------------+ SELECT DEFAULT(i), DEFAULT(k), DEFAULT (l), DEFAULT(m), DEFAULT(j) FROM t; ERROR 1364 (HY000): Field 'j' doesn't have a default value SELECT * FROM t WHERE i = DEFAULT(i); Empty set (0.001 sec) SELECT * FROM t WHERE j = DEFAULT(j); ERROR 1364 (HY000): Field 'j' doesn't have a default value SELECT * FROM t WHERE k = DEFAULT(k); +---+---+------+---+------+ | i | j | k | l | m | +---+---+------+---+------+ | 1 | 1 | 3 | 4 | NULL | | 2 | 2 | 3 | 4 | 2 | | 3 | 3 | 3 | 3 | 3 | +---+---+------+---+------+ SELECT * FROM t WHERE l = DEFAULT(l); +---+---+------+---+------+ | i | j | k | l | m | +---+---+------+---+------+ | 1 | 1 | 3 | 4 | NULL | | 2 | 2 | 3 | 4 | 2 | +---+---+------+---+------+ SELECT * FROM t WHERE m = DEFAULT(m); Empty set (0.001 sec) SELECT * FROM t WHERE m <=> DEFAULT(m); +---+---+------+---+------+ | i | j | k | l | m | +---+---+------+---+------+ | 1 | 1 | 3 | 4 | NULL | +---+---+------+---+------+
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/default/