Професионална програма
Loading...
dancho1203 avatar dancho1203 0 Точки

Problem 22. Delete Employees - " Compile time error "

Здравейте колеги, някой решил ли е Problem 22. Delete Employees от последното домашно от курса. При мен judge казва " Compile time error ", когато изпращам тригера:

CREATE TRIGGER tr_FiredEmployees
ON Employees
INSTEAD OF DELETE
AS
    INSERT INTO Deleted_Employees
    SELECT EmployeeID, FirstName, LastName, MiddleName, JobTitle, DepartmentID, Salary
    FROM deleted

Тагове:
0
Databases Basics
dancho1203 avatar dancho1203 0 Точки

Благодаря много :)

0
SvilenPavlov avatar SvilenPavlov 11 Точки

Здрасти!

 

Как разбра че не трябва да се качва емплой ИД? Нали се казва в условията цялата corresponding information?  А и има логика да се запази това айди в тая таблица, не е ли? Ако целта е да знаем точно кого сме изтрили ще го търсим поайди, нали това е целия смисъл да имат айди тия хора?
Благодаря предварително!

0
TeodorStefanovPld avatar TeodorStefanovPld 1286 Точки

Значи ти като си го изтрил това ид вече е неактуално и невалидно.Ти в новата таблица като го вкараш записа ще си има свое ид.

А за човека ти трябва само неговата информация.

В релационните бази данни ид ни помага да навързваме  foreign keys и да идентифицираме различните обекти/записи. Но реално в случая ид ти е напълно излишно няма откъде да знаеш кое е изтритото ид и по какъв начин да го търсиш.

Ако беше nosql щяха просто да изтрият целия обект с човека :Д

А теста просто търси определен запис/заявка и ти като подадеш повече ще изгърми нормално.

Като се замислиш е логично примерно имаш няколко милиона записа изтриваш примерно 1 000 001 първия от тях. И няма откъде знаеш че Гошо е точно този запис или е Пешо ти ще го потърсиш по име или по някакъв друг принцип. Сега ако почнеш да си усложняваш живота да пазиш и изтритите ид-та това е отделна тема но е излишно.

0
04/08/2019 16:44:54