Skip to Main Content
  • Questions
  • For Create Serial Number By Employee No. And Year

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, mohammad.

Asked: May 13, 2017 - 5:42 am UTC

Last updated: May 17, 2017 - 9:22 pm UTC

Version: Oracle 8i

Viewed 1000+ times

You Asked

I Will Create Serial Number by Employee Number Concatenation Year YYYY,For Every Employee to

When Create New Transaction Auto Generating Serial Number by Employee number and When Termination Year and begin new year 01-01-YYYY Create new Serial For All Employee

Note :-

3 Categories

Serial_number-Employee_Number-YYYY

1- Serial_number:Auto Generate For Every Employee when Create New Transaction : Max(Serial_number) For Every Employee and When Start new Year YYYY Create Start From new Serial Number Regenerating Numbers .
2- Employee_Number : read Employee number From Data Base.
3- YYYY : Read Format Year By sysdate : And When start Year new Auto Generate For All Employees (Serial_Number) ...



and Connor said...

This is a bad bad idea.

Think about this for a second. The moment you want to do:

next_serial = select max(serial)+1 from my_table

this means that only *every* 1 person can add a row at a time. And during that time, the entire table must be locked. Because you cannot add a new row until that row has been committed or rolled back.

So in pseudo-code, you would need to do:

- lock table my_table;
- next_serial = select max(serial)+1 from my_table
- insert next_serial
- commit;

and during all of that time, no-one else can touch your table.

That's a bad bad idea.

Rating

  (1 rating)

Is this answer out of date? If it is, please let us know via a Comment

Comments

Sam Jacob, May 18, 2017 - 2:42 pm UTC

update employee set employee_id=rownum will create sequential numbers on employee_id