Добавление строк выполняет INSERT. Для вашей учебной таблицы удобно перечислить только name и email, если генерация id настроена в ее определении. Пример PostgreSQL: INSERT INTO training.people (name, email) VALUES ('Анна', 'anna@example.test'), ('Борис', NULL) RETURNING id, name;.
Список столбцов делает соответствие явным. Первое значение каждого набора относится к имени, второе — к email. Если позже в таблице появится новый необязательный столбец, понятный INSERT с перечислением полей проще проверить, чем запись, зависящую от общего порядка всех столбцов.
NULL обозначает неизвестное значение и не заключено в кавычки. Строка 'NULL' состоит из букв и имеет другой смысл. Пустая строка в PostgreSQL тоже не равна неизвестному значению. Выбор между ними должен соответствовать модели данных, а не только удобству заполнения формы.
У пропущенных столбцов используются предусмотренные таблицей значения по умолчанию либо допустимое отсутствие значения. Если поле обязательно и подходящего значения нет, вставка завершится ошибкой. Не надо удалять ограничение только для того, чтобы принять неправильно подготовленную строку.
RETURNING помогает увидеть идентификаторы, которые реально созданы сервером. Не пытайтесь определить новый id через максимальный номер таблицы: при параллельных вставках он может относиться к другому сеансу. Способ получения результата должен соответствовать вашей СУБД.
После запуска проверьте режим транзакции. Повторное нажатие Execute может добавить тот же набор еще раз либо вызвать конфликт уникальности. Для приложения передавайте значения параметрами запроса, а не собирайте SQL из пользовательских строк с ручными кавычками.
Лучший ответ
4o
4o
Как добавить строки sql?
Перечислите столбцы, которые задаете сами. Если
idдействительно генерируется по определению таблицы, его можно не передавать.Для учебной таблицы используйте
INSERT INTO training.people (name, email) VALUES ('Анна', 'anna@example.test'), ('Борис', NULL) RETURNING id, name;.Значения каждой строки должны соответствовать перечисленным столбцам по порядку.
NULLпишется без строковых кавычек, иначе получится текст.Проверьте ограничения и значения по умолчанию у пропущенных полей. Не любой отсутствующий столбец автоматически заполняется подходящим значением.
В PostgreSQL
RETURNINGпокажет добавленные идентификаторы и имена. Учитывайте режим фиксации транзакции и возможный конфликт уникальности. Повторный запуск того же INSERT обычно добавляет новые строки, а не обновляет предыдущие.