Изучение значений PostgreSQL по умолчанию: подробное руководство с примерами кода

В PostgreSQL значения по умолчанию играют решающую роль в управлении базами данных и обеспечении целостности данных. Они предоставляют резервное значение, если во время вставки данных не указано явное значение. В этой статье мы рассмотрим различные методы установки значений по умолчанию в PostgreSQL, сопровождаемые примерами кода.

  1. Значения по умолчанию при создании таблицы:
    При создании таблицы вы можете указать значения по умолчанию для определенных столбцов. Вот пример:
CREATE TABLE employees (
    id serial PRIMARY KEY,
    name text,
    salary numeric DEFAULT 0.0
);

В приведенном выше фрагменте кода столбцу «зарплата» присваивается значение по умолчанию 0,0, если при вставке не указано значение.

  1. Изменение существующих столбцов таблицы.
    Вы также можете изменить существующие столбцы, добавив значения по умолчанию, с помощью оператора ALTER TABLE. Вот пример:
ALTER TABLE employees
ALTER COLUMN name SET DEFAULT 'Unknown';

В приведенном выше коде столбец «имя» будет иметь значение по умолчанию «Неизвестно», если значение явно не указано.

  1. Использование вызовов функций по умолчанию:
    PostgreSQL позволяет использовать вызовы функций для динамического определения значений по умолчанию. Вот пример:
CREATE OR REPLACE FUNCTION get_current_year() RETURNS integer AS
$$
BEGIN
    RETURN EXTRACT(YEAR FROM CURRENT_DATE);
END;
$$ LANGUAGE plpgsql;
ALTER TABLE employees
ALTER COLUMN joining_year SET DEFAULT get_current_year();

В приведенном выше коде функция get_current_year()вызывается для установки значения по умолчанию для столбца «joining_year» на текущий год.

  1. Значения по умолчанию для последовательных столбцов.
    Последовательные столбцы, обычно используемые для автоматического увеличения первичных ключей, имеют встроенные значения по умолчанию. Например:
CREATE TABLE products (
    id serial PRIMARY KEY,
    name text
);
INSERT INTO products (name) VALUES ('Product A');

В приведенном выше коде столбец «id», определенный как серийный, автоматически генерирует уникальное значение по умолчанию.

  1. Значения по умолчанию с выражениями.
    PostgreSQL позволяет использовать выражения в качестве значений по умолчанию. Это может быть полезно для создания временных меток или сложных вычислений. Вот пример:
CREATE TABLE orders (
    id serial PRIMARY KEY,
    order_date timestamp DEFAULT current_timestamp,
    total_amount numeric DEFAULT (SELECT SUM(amount) FROM order_items)
);

В приведенном выше коде столбцу «order_date» по умолчанию присваивается текущая временная метка, а столбцу «total_amount» вычисляется динамически с помощью подзапроса.

PostgreSQL предоставляет несколько методов установки значений по умолчанию, что позволяет обеспечить согласованность данных и упростить вставку данных. В этой статье мы рассмотрели различные методы, включая установку значений по умолчанию при создании таблицы, изменение существующих столбцов, использование вызовов функций, работу с последовательными столбцами и использование выражений. Используя эти методы, вы можете повысить эффективность и надежность управления базой данных PostgreSQL.