← К оглавлению занятия

🐛 Типичные ошибки

⚡ Кратко: ошибки

  • Забыть WHERE в UPDATE — изменятся все строки.
  • Неправильный порядок столбцов и значений в INSERT.
  • Дублирование значений в UNIQUE-столбце.
  • Нарушение CHECK или NOT NULL.
  • Создание таблицы с уже существующим именем.
1

Ошибка: UPDATE без WHERE

Без условия UPDATE применяется ко всем строкам таблицы. Это одна из самых опасных ошибок.

-- Опасно: зарплата станет 65000 у всех сотрудников
UPDATE Employees SET Salary = 65000;

-- Правильно
UPDATE Employees
SET Salary = 65000
WHERE EmployeeID = 1;
2

Ошибка: несоответствие столбцов и значений в INSERT

Количество, порядок и типы значений должны соответствовать указанным столбцам.

-- Ошибка: 4 столбца, 3 значения
INSERT INTO Employees (FirstName, LastName, Salary, Email)
VALUES ('Alice', 'Green', 55000.00);
3

Ошибка: дублирование в UNIQUE-столбце

Попытка вставить уже существующий email вызовет ошибку нарушения уникальности.

-- Ошибка: email уже есть в таблице
INSERT INTO Employees (FirstName, LastName, Salary, Email)
VALUES ('Frank', 'White', 50000.00, 'alice.green@example.com');
4

Ошибка: нарушение CHECK

Если ограничение CHECK требует положительной зарплаты, отрицательное значение будет отклонено.

-- Ошибка: Salary не проходит CHECK (Salary > 0)
INSERT INTO Employees (FirstName, LastName, Salary, Email)
VALUES ('Grace', 'Black', -1000.00, 'grace.black@example.com');
5

Ошибка: создание таблицы с существующим именем

Повторный CREATE TABLE с тем же именем вызовет ошибку. Используйте CREATE TABLE IF NOT EXISTS или удалите старую таблицу.

-- Безопаснее
CREATE TABLE IF NOT EXISTS Employees (...);

-- Или сначала удалить
DROP TABLE IF EXISTS Employees;
CREATE TABLE Employees (...);
6

Ошибка: пропуск обязательного NOT NULL

Столбцы с NOT NULL должны получить значение при вставке или иметь DEFAULT.

-- Ошибка: FirstName NOT NULL, но не указан
INSERT INTO Employees (LastName, Salary, Email)
VALUES ('Gray', 50000.00, 'gray@example.com');