1. හැඳින්වීම
MySQL වෙබ් යෙදුම් සහ දත්ත ගබඩා කළමනාකරණ පද්ධති වල පුළුල් ලෙස භාවිතා වේ, සහ දත්ත යාවත්කාලීන කිරීම දෛනික මෙහෙයුම් සහ යෙදුම් නඩත්තු කිරීමේදී අතිශය වැදගත් වේ. විශාල ප්රමාණයේ දත්ත හෝ එකවර බහු රෙකෝඩ් යාවත්කාලීන කිරීම අවශ්ය වන පද්ධති සඳහා MySQL UPDATE ප්රකාශය කාර්යක්ෂමව භාවිත කිරීම අත්යවශ්ය වේ.
මෙම ලිපියේ, MySQL UPDATE ප්රකාශය භාවිතා කර බහු රෙකෝඩ් සහ තීරුවල bulk යාවත්කාලීන කිරීමේ විස්තරාත්මක විස්තරයක් ලබා දෙනු ඇත. මූලික භාවිතය සිට සංකීර්ණ කොන්දේසි සමඟ උසස් යාවත්කාලීන ක්රමවලට, MySQL භාවිතා කර උසස් යාවත්කාලීන මෙහෙයුම් සිදු කිරීමට අවශ්ය අයට පියවරෙන් පියවර විස්තර ලබා දේ.
2. UPDATE ප්රකාශයේ මූලික ව්යවස්ථාව
MySQL UPDATE ප්රකාශය විශේෂිත කොන්දේසි මත පදනම්ව වගුවක දත්ත වෙනස් කිරීමට භාවිතා වේ. පළමුව මූලික ව්යවස්ථාව සහ එක් රෙකෝඩ් හෝ තීරුවක් යාවත්කාලීන කිරීමේ ක්රමය බලමු.
මූලික ව්යවස්ථාව
MySQL UPDATE ප්රකාශයේ මූලික ව්යවස්ථාව පහත පරිදි වේ:
UPDATE table_name
SET column_name1 = value1, column_name2 = value2, ...
WHERE condition;
- table_name : යාවත්කාලීන කිරීමට අවශ්ය වගුවේ නාමය නිරූපනය කරයි.
- SET clause : යාවත්කාලීන කිරීමට අවශ්ය තීරු සහ ඒවායේ නව අගයන් නිරූපනය කරයි. එකවර බහු තීරු යාවත්කාලීන කරන විට, තීරුව-අග යුගල වෙන් කිරීමට කොමා භාවිතා කරන්න.
- WHERE clause : යාවත්කාලීන කිරීමට රෙකෝඩ් තෝරා ගැනීමට කොන්දේසිය නිරූපනය කරයි. WHERE clause එක නොදැක්වූ විට, වගුවේ සියලු රෙකෝඩ් යාවත්කාලීන වන බැවින් අවධානයෙන් භාවිතා කරන්න.
උදාහරණය: එක් රෙකෝඩ් හෝ තීරුවක් යාවත්කාලීන කිරීම
එක් රෙකෝඩ් හෝ තීරුවක් යාවත්කාලීන කිරීමේ මූලික උදාහරණයක් මෙසේය:
UPDATE users
SET name = 'Tanaka'
WHERE id = 1;
මෙම SQL ප්රකාශය users වගුවේ id 1 වන රෙකෝඩ් සඳහා name තීරුව “Tanaka” ලෙස යාවත්කාලීන කරයි. WHERE clause එකක් නිරූපණය කිරීමෙන්, ඔබට ඉලක්කගත රෙකෝඩ් පමණක් යාවත්කාලීන කළ හැකිය.
3. බහු රෙකෝඩ් Bulk යාවත්කාලීන කිරීම
එක්වර බහු රෙකෝඩ් යාවත්කාලීන කරන විට, WHERE clause තුළ බහු කොන්දේසි නිරූපණය කළ හැකිය. උදාහරණයක් ලෙස, IN clause හෝ OR කොන්දේසි භාවිතා කර, විශේෂිත මාර්ගෝපදේශයන්ට ගැළපෙන බහු රෙකෝඩ් කාර්යක්ෂමව යාවත්කාලීන කළ හැකිය.
IN Clause භාවිතා කර බහු රෙකෝඩ් යාවත්කාලීන කිරීම
IN clause එක ඔබට විශේෂිත අගයන් ලැයිස්තුවකට ගැළපෙන රෙකෝඩ් යාවත්කාලීන කිරීමට ඉඩ සලසයි.
UPDATE users
SET status = 'active'
WHERE id IN (1, 3, 5, 7);
මෙම SQL ප්රකාශය users වගුවේ id 1, 3, 5, හෝ 7 වන රෙකෝඩ් සඳහා status තීරුව “active” ලෙස යාවත්කාලීන කරයි. IN clause එක භාවිතා කිරීමෙන්, එකම විමසුමකින් බහු ගැළපෙන රෙකෝඩ් යාවත්කාලීන කළ හැකිය.
OR භාවිතා කර බහු කොන්දේසි නිරූපණය කිරීම
OR මෙහෙයුම ඔබට බහු කොන්දේසි එකට එකතු කිරීමට ඉඩ සලසයි.
UPDATE users
SET status = 'inactive'
WHERE id = 2 OR id = 4 OR id = 6;
මෙම SQL ප්රකාශය id 2, 4, හෝ 6 වන රෙකෝඩ් සඳහා status තීරුව “inactive” ලෙස යාවත්කාලීන කරයි. OR භාවිතා කිරීමෙන්, එකවර බහු කොන්දේසි ගැළපෙන රෙකෝඩ් යාවත්කාලීන කළ හැකිය.
4. බහු තීරු එකවර යාවත්කාලීන කිරීම
MySQL UPDATE ප්රකාශය ඔබට එකවර බහු තීරු වෙනස් කිරීමට ඉඩ සලසයි. සම්බන්ධිත තොරතුරු බහු වෙනස් කරමින් දත්ත සමගිත්වය රැක ගැනීමට මෙය ප්රයෝජනවත් වේ.
උදාහරණය: බහු තීරු යාවත්කාලීන කිරීම
බහු තීරු එකවර යාවත්කාලීන කිරීමට, SET clause තුළ එක් එක් තීරුව සහ අගය යුගල කොමා වලින් වෙන් කර නිරූපණය කරන්න.
UPDATE products
SET price = price * 1.1, stock = stock - 1
WHERE id = 10;
මෙම SQL ප්රකාශය products වගුවේ id 10 වන රෙකෝඩ් සඳහා price තීරුව 10% වැඩි කරයි, සහ stock තීරුව 1 කින් අඩු කරයි. SET clause තුළ බහු තීරු නිරූපණය කිරීමෙන්, එකම මෙහෙයුමකින් සම්බන්ධිත දත්ත කාර්යක්ෂමව යාවත්කාලීන කළ හැකිය.
5. CASE භාවිතා කර කොන්දේසිමය යාවත්කාලීන කිරීම
MySQL හි, UPDATE ප්රකාශය තුළ CASE ප්රකාශය භාවිතා කර, විශේෂිත කොන්දේසි මත පදනම්ව වෙනස් අගයන් නියම කළ හැකිය. මෙය බහු කොන්දේසි මත පදනම්ව ලවච්චි යාවත්කාලීන කිරීමට ඉඩ සලසයි, සහ සංකීර්ණ යාවත්කාලීන මෙහෙයුම් කළමනාකරණය පහසු කරයි.
CASE භාවිතා කර මූලික ව්යවස්ථාව
CASE භාවිතා කරමින් UPDATE ප්රකාශනයක මූලික ව්යාකරණය පහත පරිදි වේ:
UPDATE table_name
SET column_name = CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE default_value
END
WHERE condition;
- column_name : ඔබට යාවත්කාලීන කිරීමට අවශ්ය කොලම.
- condition : WHEN කොටස්වල තත්ත්වයන් විශේෂණය කරන්න සහ THEN භාවිතා කරමින් යෙදිය යුතු වටිනාකම අර්ථ දක්වන්න.
- default_value : කිසිවක් තත්ත්වයක් සමග නොගැලපෙන විට යෙදෙන වටිනාකම (විකල්පය).
CASE භාවිතා කරමින් ප්රායෝගික උදාහරණය
මෙහි employees වගුවේ රැකියා පදනම මත වැටුප් යාවත්කාලීන කිරීමේ උදාහරණයක් ඇත.
UPDATE employees
SET salary = CASE
WHEN position = 'Manager' THEN salary * 1.1
WHEN position = 'Developer' THEN salary * 1.05
WHEN position = 'Intern' THEN salary * 1.02
ELSE salary
END;
මෙම SQL ප්රකාශනය employees වගුවේ එක් එක් වාර්තාව සඳහා position කොලමේ වටිනාකමට අනුව salary කොලම යාවත්කාලීන කරයි.
බහු කොලම් සඳහා තත්ත්ව සම්බන්ධ යාවත්කාලීන කිරීම්
CASE ප්රකාශනය බහු කොලම් සඳහා ද යෙදිය හැක. පහත උදාහරණයේදී, employees වගුවේ රැකියා පදනම සහ සේවා වසර මත salary සහ bonus දෙකම යාවත්කාලීන කෙරේ.
UPDATE employees
SET
salary = CASE
WHEN position = 'Manager' AND years_of_service >= 5 THEN salary * 1.15
WHEN position = 'Developer' AND years_of_service >= 3 THEN salary * 1.1
ELSE salary
END,
bonus = CASE
WHEN position = 'Manager' THEN bonus + 1000
WHEN position = 'Developer' THEN bonus + 500
ELSE bonus
END;
මෙම SQL ප්රකාශනය රැකියා පදනම සහ සේවා වසර මත පදනම්ව වැටුප් සහ බෝනස් දෙකම එක් මෙහෙයුමකින් යාවත්කාලීන කරයි. CASE භාවිතා කිරීමෙන් බහු තත්ත්ව මගින් ධාවිත වන නම්යශීලී යාවත්කාලීන කිරීම් සිදු කළ හැක.

6. JOIN භාවිතා කරමින් බහු වගු යාවත්කාලීන කිරීම
MySQL හි, UPDATE ප්රකාශනය තුළ JOIN කොටස භාවිතා කරමින් වෙනත් වගුවක දත්ත මත පදනම්ව වාර්තා වෙනස් කළ හැක. මෙය වගුවක් තුළ සම්බන්ධිත දත්ත යොදාගෙන වෙනත් වගුවක් යාවත්කාලීන කිරීමේ සංකීර්ණ දත්ත මෙහෙයුම් සක්රිය කරයි.
JOIN සමග UPDATE හි මූලික ව්යාකරණය
JOIN භාවිතා කරමින් දත්ත යාවත්කාලීන කිරීමේදී, මූලික ව්යාකරණය පහත පරිදි වේ:
UPDATE tableA
JOIN tableB ON tableA.column = tableB.column
SET tableA.column_to_update = new_value
WHERE condition;
- tableA and tableB : tableA යනු යාවත්කාලීන කළ යුතු වගුව වන අතර tableB යනු යොදාගැනීමේ වගුව.
- ON clause : JOIN තත්ත්වය අර්ථ දක්වා වගු දෙක සම්බන්ධ කරන කොලම් විශේෂණය කරයි.
- SET clause : යාවත්කාලීන කළ යුතු කොලම සහ එහි නව වටිනාකම විශේෂණය කරයි.
- WHERE clause : යාවත්කාලීන කළ යුතු වාර්තා පෙරලා හරිනවා.
JOIN භාවිතා කරමින් ප්රායෝගික උදාහරණය
උදාහරණයක් ලෙස, orders සහ customers වගු JOIN කරමින් නිශ්චිත ගනුදෙනුකරුවන් සම්බන්ධ ඇණවුම් තත්ත්වය යාවත්කාලීන කිරීමට අවශ්ය යැයි සිතන්න.
UPDATE orders
JOIN customers ON orders.customer_id = customers.id
SET orders.status = 'Shipped'
WHERE customers.vip_status = 'Yes';
මෙම SQL ප්රකාශනය customers වගුවේ vip_status “Yes” ලෙස ඇති ගනුදෙනුකරුවන් සම්බන්ධ වාර්තා සඳහා orders වගුවේ status කොලම “Shipped” ලෙස යාවත්කාලීන කරයි. JOIN භාවිතා කිරීමෙන් සම්බන්ධ වගු දත්ත මත පදනම්ව වාර්තා යාවත්කාලීන කළ හැක.
බහු තත්ත්ව සමග JOIN යාවත්කාලීන කිරීම
බහු තත්ත්ව ඒකාබද්ධ කරමින් වඩාත් විස්තරාත්මක යාවත්කාලීන කිරීම් සිදු කළ හැක. පහත උදාහරණයේදී, ගනුදෙනුකරු තත්ත්වය සහ ඇණවුම මුදල මත තත්ත්ව සම්බන්ධව ඇණවුම් තත්ත්ව වෙනස් කෙරේ.
UPDATE orders
JOIN customers ON orders.customer_id = customers.id
SET orders.status = CASE
WHEN customers.vip_status = 'Yes' THEN 'Priority'
WHEN customers.vip_status = 'No' AND orders.amount > 10000 THEN 'Review'
ELSE orders.status
END
WHERE orders.date >= '2024-01-01';
JOIN භාවිතා කිරීමෙන් සම්බන්ධ වගු දත්ත මගින් ධාවිත වන නම්යශීලී සහ තත්ත්ව මත පදනම්ව යාවත්කාලීන කිරීම් සිදු කළ හැක.
7. කාර්ය සාධනය සලකා බැලීම් සහ හොඳම පිළිවෙත්
When using the MySQL UPDATE statement to modify multiple records or columns in bulk, especially when handling large datasets, you must pay close attention to performance. Below are key points and best practices to improve update performance while maintaining data integrity.
කාර්ය සාධන අභිලක්ෂණ උපදෙස්
දර්ශක (Indexes) ප්රභාවී ලෙස භාවිත කිරීම
When updating records based on specific conditions in the WHERE clause, adding indexes to the relevant columns can significantly improve search speed. Indexes enhance query performance, allowing efficient processing even when dealing with large amounts of data.
CREATE INDEX idx_customer_id ON orders(customer_id);
However, having too many indexes can negatively impact performance, especially during insert and update operations. Therefore, it is recommended to apply indexes only to essential columns.
කට්ටල (Batch) සැකසීමෙන් පූර්ණ භාරය අඩු කිරීම
Updating a large number of records at once can place a heavy load on the database server and slow down response times. When performing large-scale updates, you can reduce server load by processing records in batches (executing updates in multiple smaller transactions).
UPDATE orders
SET status = 'Processed'
WHERE status = 'Pending'
LIMIT 1000;
By combining this approach with a script that repeatedly executes the query, you can perform efficient batch updates while maintaining system stability.
ගනුදෙනු (Transactions) භාවිත කිරීම
When multiple UPDATE statements are related or when maintaining data consistency is critical, you should use transactions. Transactions ensure that if an error occurs during the update process, all changes can be rolled back to maintain consistency.
START TRANSACTION;
UPDATE accounts SET balance = balance - 500 WHERE id = 1;
UPDATE accounts SET balance = balance + 500 WHERE id = 2;
COMMIT;
අගුළු (Locks) කළමනාකරණය
Executing an UPDATE statement may generate table locks. When multiple users access the same table simultaneously, proper lock management becomes crucial. For example, using row-level locking allows other users to access different rows at the same time, enabling parallel processing. Avoiding full table locks improves database responsiveness and overall performance.
8. නිගමනය
In this article, we explored efficient methods for updating multiple records and columns using the MySQL UPDATE statement, covering everything from basic usage to advanced techniques. When updating multiple records in MySQL, it is essential to consider data volume, processing speed, and data integrity.
ප්රධාන සාරාංශ
- UPDATE ප්රකාශයේ මූලික කරුණු
- UPDATE හි මූලික ව්යවස්ථාව තේරුම් ගැනීමෙන් ඔබට තනි තීරුවල සහ රෙකෝඩ් ආරක්ෂිතව වෙනස් කිරීමට හැකිය.
- බහු රෙකෝඩ් බල්ක් යාවත්කාලීන කිරීම
- WHERE, IN, සහ OR කොටස් භාවිතා කිරීමෙන් නියමිත කොන්දේසි වලට ගැළපෙන බහු රෙකෝඩ් කාර්යක්ෂමව යාවත්කාලීන කළ හැක.
- එකවර බහු තීරුවල යාවත්කාලීන කිරීම
- SET කොටස ඔබට එක් රෙකෝඩ් එකේ බහු තීරුවල එකවර වෙනස් කිරීමට, දත්ත අඛණ්ඩතාව රැක ගැනීමට ඉඩ සලසයි.
- CASE භාවිතයෙන් කොන්දේසිමය යාවත්කාලීන කිරීම
- CASE ප්රකාශන භාවිතා කිරීමෙන්, එකම විමසුමක නියමිත කොන්දේසි මත විවිධ යාවත්කාලීන කිරීම් සිදු කර, සංකීර්ණ යාවත්කාලීන තර්කය සරල කරයි.
- JOIN සමඟ බහු වගු යාවත්කාලීන කිරීම
- යාවත්කාලීන කිරීමේදී සම්බන්ධිත වගු උපුටා ගැනීම සමස්ත දත්ත ගබඩා අඛණ්ඩතාව රැක ගැනීමට සහ අධි-තාක්ෂණික දත්ත මෙහෙයුම් සක්රිය කිරීමට උපකාරී වේ.
- කාර්ය සාධනය සහ හොඳ පුරුදු
- දර්ශක, කට්ටල සැකසීම, සහ ගනුදෙනු (transactions) භාවිතා කිරීමෙන් කාර්යක්ෂම සහ ආරක්ෂිත දත්ත යාවත්කාලීන කිරීම් සලස්වයි. නිසි අගුළු කළමනාකරණය ද දත්ත ගබඩා කාර්ය සාධනය උපරිම කර ගැනීමට අත්යවශ්ය වේ.
අවසාන අදහස්
Efficiently updating data in MySQL is one of the most important skills in database management. Mastering the UPDATE statement allows you to improve operational efficiency and optimize overall system performance. Be sure to apply the techniques introduced in this article to your real-world projects and workflows.


