Атрибут DEFAULT

Атрибут DEFAULT в MySQL дозволяє встановити значення за замовчуванням для стовпця таблиці, якщо під час вставки нового запису в таблицю значення для цього стовпця не було вказано. Це означає, що якщо при вставці рядка не вказано значення для стовпця з атрибутом DEFAULT, MySQL автоматично призначить значення, яке ви задали для цього стовпця.
Основне призначенняВстановити значення, яке автоматично буде присвоєно стовпцю, якщо під час вставки запису не буде вказано значення для цього стовпця.
Типи значень за замовчуванням• Конкретне значення (наприклад, число, рядок, дата)
• Вбудовані функції, такі як CURRENT_TIMESTAMP для автоматичного встановлення поточної дати та часу.

Встановлення конкретного значення за замовчуванням

Можна встановити значення за замовчуванням для стовпця, який зберігає статус користувача (наприклад, active), де за замовчуванням значення буде 1 (активний користувач).

CREATE TABLE users (
    user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    status INT DEFAULT 1
);
INSERT INTO users (username, email)
VALUES ('john_doe', 'john.doe@example.com');
-- У цьому випадку для стовпця status 
-- буде автоматично використано значення 1.

Використання функції як значення за замовчуванням

В MySQL можна використовувати вбудовані функції для встановлення значень за замовчуванням. Наприклад, для стовпця дати можна використовувати функцію CURRENT_TIMESTAMP, яка автоматично призначає поточну дату та час при вставці нового запису.

CREATE TABLE orders (
    order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    product_id INT NOT NULL,
    customer_id INT NOT NULL,
    order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO orders (product_id, customer_id)
VALUES (1, 101);

-- Для цього запису стовпець order_date буде 
-- автоматично заповнений поточною датою та часом.

Встановлення значення за замовчуванням для числових стовпців

Можна також встановити значення за замовчуванням для числових стовпців.

CREATE TABLE products (
    product_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    product_name VARCHAR(100) NOT NULL,
    price DECIMAL(10, 2) DEFAULT 0.00
);
INSERT INTO products (product_name)
VALUES ('New Product');

-- Для цього запису значення price 
-- буде автоматично встановлено на ->  0.00.

Зміна значення DEFAULT за допомогою команди ALTER

Можна змінити значення за замовчуванням навіть після створення таблиці, використовуючи команду ALTER TABLE.

ALTER TABLE users
ALTER COLUMN status SET DEFAULT 0;

-- Ця команда змінить значення за замовчуванням 
-- для стовпця status на 0.

Особливості DEFAULT

DEFAULT і NULL•Якщо для стовпця не вказано значення, а також не задано значення за замовчуванням, то значення стовпця буде NULL, якщо він допускає NULL. Якщо стовпець має атрибут NOT NULL і немає значення за замовчуванням, то при вставці запису без вказаного значення для цього стовпця виникне помилка.
•Ви можете вказати DEFAULT NULL для стовпця, щоб значення за замовчуванням було NULL.
Обмеження на значення за замовчуванням•Для стовпців типу TEXT, BLOB, GEOMETRY, JSON можа встановити DEFAULT значення тільки у якості виразу.
•Якщо для стовпця задано значення за замовчуванням, це значення автоматично використовується тільки під час вставки запису, якщо не вказано інше значення.
CREATE TABLE articles (
    article_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    article_title VARCHAR(100) NOT NULL,
    content TEXT DEFAULT (‘Article text goes here.’)
);
INSERT INTO articles (article_title)
VALUES ('New article');

-- Для цього запису значення content 
-- буде автоматично встановлено ‘Article text goes here.’

Для додаткової візуалізації є відео:

Leave a Reply

Your email address will not be published. Required fields are marked *