Глава 5. Основы языка определения данных
столбец. Этот столбец по умолчанию будет получать значение, возвращаемое
функцией current_user.
CREATE TABLE students
( record_book numeric( 5 ) NOT NULL,
name text NOT NULL,
doc_ser numeric( 4 ),
doc_num numeric( 6 ),
who_adds_row text DEFAULT current_user, -- добавленный столбец
PRIMARY KEY ( record_book )
);
Эта функция — current_user — будет вызываться не при создании таблицы,
а при вставке каждой строки. При этом в команде INSERT не требуется указы-
вать значение для столбца who_adds_row, поскольку функция current_user
будет вызываться самой СУБД PostgreSQL:
INSERT INTO students ( record_book, name, doc_ser, doc_num )
VALUES ( 12300, 'Иванов Иван Иванович', 0402, 543281 );
Давайте пойдем дальше и пожелаем фиксировать не только имя пользователя
базы данных, добавившего строку в таблицу, но также и момент времени, когда
это было сделано. Самостоятельно внесите модификацию в определение табли-
цы students для решения этой задачи, а затем выполните команду INSERT для
проверки полученного решения.
Если до выполнения этого упражнения вы еще не ознакомились с командой
ALTER TABLE, то вместо модифицирования определения таблицы сначала уда-
лите ее, а затем создайте заново:
Достарыңызбен бөлісу: