ຄອມພິວເຕີຖານຂໍ້ມູນ

"ຜິດພະລາດ" DML-Team Update MySQL

ທຸກ programmer, ຜູ້ທີ່ໄດ້ເຮັດວຽກຮ່ວມກັບຖານຂໍ້ມູນ, ປະເຊີນຫນ້າກັບ DML, ຜູ້ປະກອບການ (ແປຈາກອັງກິດ - .. "Data Manipulation Language"), ເຊັ່ນ: ເລືອກ, Insert, ລຶບ ແລະ ການປັບປຸງ. MySQL, ການຂົນສົ່ງຍັງໃຊ້ສານຫນູຂອງທັງຫມົດຂອງຄໍາສັ່ງຂ້າງເທິງນີ້.

ຂໍ້ກໍານົດເຫຼົ່ານີ້ແມ່ນມີເຫດຜົນລົມກັນກ່ຽວກັບການແຕ່ງຕັ້ງ - ການບັນທຶກການເລືອກ, ສະແດງກິ່ງງ່າຄຸນຄ່າໃຫມ່, ການອັບເດດຂໍ້ມູນທີ່ມີຢູ່ແລ້ວ, ສະບັບສົມບູນ, ຫຼືໃນສອດຄ່ອງກັບເງື່ອນໄຂທີ່ກໍານົດໄວ້, ການປົດຕໍາແຫນ່ງຂໍ້ມູນໃນຖານຂໍ້ມູນໄດ້. ອຸປະກອນການຝຶກອົບຮົມທິດສະດີໄດ້ອະທິບາຍໃນລາຍລະອຽດຫຼັກການຂອງການປະຕິບັດງານຂອງແຕ່ລະຄໍາສັ່ງແລະໄວຢາກອນຂອງເຂົາເຈົ້າ, ແຕ່ພົບ nowhere ການອ້າງອິງເຖິງຄວາມຫຍຸ້ງຍາກທີ່ອາດຈະເກີດຂຶ້ນໃນການປະຕິບັດໃນໄລຍະການນໍາໃຊ້. ອຸປະກອນການນີ້ຈະໄດ້ຮັບການອຸທິດໃຫ້ພິຈາລະນາຂອງບາງສ່ວນຂອງເຂົາເຈົ້າໄດ້.

ໄລຍະສັ້ນໆກ່ຽວກັບ DML, ຂໍ້ກໍານົດ (Insert)

ກ່ອນທີ່ຈະດໍາເນີນຕໍ່ໄປ, ມັນເປັນສິ່ງຈໍາເປັນອີກເທື່ອຫນຶ່ງເພື່ອ recall ລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບຈຸດປະສົງຂອງແຕ່ລະການເຄື່ອນໄຫວ. ພວກເຮົາຈະມີສອງຜູ້ປະກອບການມີຄວາມສົນໃຈໃນລາຍລະອຽດເພີ່ມເຕີມ: Insert ແລະ ການປັບປຸງ, ເນື່ອງຈາກວ່າມັນຂຶ້ນກັບພວກເຂົາມາມີຄວາມຫຍຸ້ງຍາກຕົ້ນຕໍໃນການປະມວນຜົນຂໍ້ມູນຈໍານວນ.

ທ່ານຕ້ອງເລີ່ມຕົ້ນດ້ວຍ Insert ຄໍາສັ່ງ, ແລະຫຼັງຈາກນັ້ນຄ່ອຍໆຍ້າຍອອກໄປປັບປຸງ. ລະບົບ MySQL, ເຊັ່ນ: ຖານຂໍ້ມູນທີ່ທັນສະໄຫມອື່ນໆ, ການນໍາໃຊ້ປະຕິບັດງານໃສ່ເພື່ອເພີ່ມການບັນທຶກໃຫມ່ກັບຕາຕະລາງທີ່ມີຢູ່ແລ້ວ ຖານຂໍ້ມູນ. ໄວຢາກອນຂອງປະຕິບັດງານນີ້ແມ່ນງ່າຍດາຍແລະ straightforward. ມັນປະກອບດ້ວຍລາຍຊື່ຂອງທົ່ງນາທີ່ຈະໄດ້ຮັບການເຮັດໃຫ້ຄຸນຄ່າ, ຈຸດຫມາຍປາຍທາງໄດ້ - ຊື່ຂອງຕາຕະລາງ - ແລະໃນທັນທີໄດ້ນໍາສະເຫນີບັນຊີລາຍຊື່ຂອງຂໍ້ມູນ. ທຸກຄັ້ງທີ່ທ່ານປະຕິບັດຖານຂໍ້ມູນໃສ່ຈະໄດ້ຮັບການປັບປຸງທີ່ມີຄຸນຄ່າໃຫມ່.

ຄໍາຖະແຫຼງທີ່ປັບປຸງ

ຢ່າງໃດກໍຕາມ, ໃນການປະຕິບັດ, ທີ່ຂ້ອນຂ້າງມັກຈະມີສະຖານະການທີ່ສໍາລັບການທີ່ກໍານົດໄວ້ຂອງຂໍ້ມູນຫນຶ່ງຫຼືຄ່າ attribute ເພີ່ມເຕີມບາງຢ່າງທີ່ຈະໄດ້ຮັບການປັບປຸງ. ໃນຖານະເປັນຕົວຢ່າງ, ສະຖານະການທີ່ບໍລິສັດນີ້ແມ່ນການປະຕິຮູບທີ່ມີ renaming ໃນຕໍ່ຫນ້າຂອງບັນດາພະແນກຕົ້ນຕໍໄດ້. ໃນກໍລະນີນີ້ມັນເປັນສິ່ງຈໍາເປັນເພື່ອເຮັດໃຫ້ການປ່ຽນແປງສໍາລັບແຕ່ລະພະແນກ. ຖ້າຫາກວ່າພຽງແຕ່ການປ່ຽນແປງຊື່, ຫຼັງຈາກນັ້ນບັນຫາທີ່ສາມາດໄດ້ຮັບການແກ້ໄຂຢ່າງໄວວາ. ຢ່າງໃດກໍຕາມ, ຖ້າຫາກວ່າການປ່ຽນແປງການເຂົ້າລະຫັດຂອງອົງປະກອບຂອງການຜະລິດທັງຫມົດ, ເຊິ່ງປົກກະຕິແລ້ວເຮັດຫນ້າທີ່ເປັນສໍາຄັນຕົ້ນຕໍ, ນັ້ນແມ່ນແຕ່ລະຄົນ, ແລະເຮັດໃຫ້ການ, ຫມາຍເຖິງການປ່ຽນແປງຂໍ້ມູນຂ່າວສານແລະສໍາລັບພະນັກງານແຕ່ລະຄົນ.

ການປັບປຸງ - DML ປະຕິບັດການສາມາດໄດ້ຮັບການນໍາໃຊ້ເພື່ອແກ້ໄຂບັນຫານີ້. ເຄື່ອງແມ່ຂ່າຍຂອງ MySQL-, ປະຕິບັດການທີ່ມີຈໍານວນຂອງການອອກສຽງດ້ວຍຄວາມຊ່ວຍເຫລືອຂອງຖະແຫຼງການປັບປຸງໄດ້, ປະຕິບັດການສອບຖາມທີ່ກໍານົດໄວ້ແລະແກ້ໄຂບັນຫາໄດ້. ແຕ່ບາງຄັ້ງເກີດຂຶ້ນໃນໄລຍະການປັບປຸງ, ບໍ່ແມ່ນການທີ່ຈະແຈ້ງແລະການຍາກທີ່ຈະອະທິບາຍຄວາມສັບສົນ. ນັ້ນຄືສິ່ງທີ່ເຮັດໃຫ້ຄວາມຫຍຸ້ງຍາກຂອງການບັນທຶກການປັບປຸງ, ຈະໄດ້ຮັບການປຶກສາຫາລືຕື່ມອີກ.

ສິ່ງທີ່ເລັກນ້ອຍໄດ້ຮັບການກ່າວວ່າໃນທິດສະດີ ...

ທີມງານການປັບປຸງ, ເປັນບັນທຶກໄວ້ຂ້າງເທິງ, ແມ່ນຖືກນໍາໃຊ້ເພື່ອປັບປຸງການບັນທຶກທີ່ມີຢູ່ແລ້ວໃນຕາຕະລາງໄດ້. ແຕ່ໃນການປະຕິບັດ, ລູກຄ້າເຂົ້າເຖິງເຄື່ອງແມ່ຂ່າຍຖານຂໍ້ມູນທີ່ຍັງບໍ່ໄດ້ເປັນທີ່ຮູ້ຈັກສະເຫມີ, ມີການກໍານົດໄວ້ສະເພາະໃດຫນຶ່ງຂອງຂໍ້ມູນໃນຕາຕະລາງຫຼືບໍ່. ຂໍ້ມູນເບື້ອງຕົ້ນການກວດສອບຄວາມພ້ອມຂອງຂໍ້ມູນໃນຖານຂໍ້ມູນສໍາລັບການປັບປຸງຕໍ່ໄປຂອງຜົນໄດ້ຮັບໃນທີ່ໃຊ້ເວລາຫຼາຍແລະສິ່ງເສດເຫຼືອຂອງຄວາມສາມາດຂອງເຄື່ອງແມ່ຂ່າຍ.

ເພື່ອຫຼີກເວັ້ນການດັ່ງກ່າວນີ້, ໃນໂຄງສ້າງຖານຂໍ້ມູນ MySQL ພິເສດ - Insert * Update, ໃນການໃສ່ຫລືການປັບປຸງສາມາດໄດ້ຮັບການປະຕິບັດເປັນອິດສະຫຼະຂອງກັນແລະກັນ. ທີ່ໃນເວລາທີ່ຕາຕະລາງມີເຂົ້າສໍາລັບການສະພາບໂດຍສະເພາະເປັນ, ຈະໄດ້ຮັບການປັບປຸງ. ຖ້າຫາກວ່າເງື່ອນໄຂໃນການພິຈາລະນາ, ຂໍ້ມູນຈະບໍ່ໄດ້ຮັບການທີ່ພົບເຫັນ, MySQL, ເຄື່ອງແມ່ຂ່າຍຂອງແມ່ນສາມາດປະຕິບັດການຮ້ອງຂໍ uploads ຂໍ້ມູນ.

ຂໍ້ມູນການປັບປຸງໃນເວລາທີ່ມີຄ່າຊໍ້າກັນ

ເປັນອົງປະກອບທີ່ສໍາຄັນຂອງ Insert ນີ້ - ຕິດຕໍ່ກັບລະບົບການຄຸ້ມຄອງຖານຂໍ້ມູນ MySQL - «ໃນ Update Key ຊ້ໍາ»ຄໍານໍາຫນ້າ. ໄວຢາກອນທີ່ສົມບູນຂອງແບບສອບຖາມມີດັ່ງນີ້: «ສະແດງກິ່ງງ່າເຂົ້າໄປໃນ test_table (employer_id, ຊື່) ຄ່າ ( 1, 'Abramov') ທີ່ສໍາຄັນຊ້ໍາ ປັບປຸງ last_modified = NOW (); ".

ດັ່ງກ່າວການຮ້ອງຂໍອາດຖືກນໍາໃຊ້ເພື່ອບັນທຶກການກະທໍາຂອງ, ສໍາລັບການຍົກຕົວຢ່າງ, ກໍານົດວິສາຫະກິດທີ່ໃຊ້ເວລາ passage ສີ່ແຍກທີ່ໃຊ້ໂດຍນັບໄລຍະຫ່າງທີ່ໃຊ້ເວລາແລະຄວາມຊັກຊ້າການຊອກຄົ້ນຫາ. ໃນຄໍາສັ່ງທີ່ຈະບໍ່ເຮັດໃຫ້ຕາຕະລາງທີ່ບໍ່ພໍເທົ່າໃດການບັນທຶກ, ພຽງພໍສໍາລັບພະນັກງານແຕ່ລະຄົນທີ່ຈະຮັກສາການບັນທຶກທີ່ມີການປັບປຸງຄົງທີ່. ມັນເປັນການອອກແບບກາເຄື່ອງຫມາຍຊ້ໍາກັນອະນຸຍາດໃຫ້ມັນ.

ຕົວຈິງແລ້ວບັນຫາ ...

ພິຈາລະນາຕົວຢ່າງຂ້າງເທິງຂອງການປະຕິບັດພະນັກງານການຈົດທະບຽນຢູ່ທີ່ເສັງເຂົ້າໄດ້, ເປັນບັນຫາແມ່ນການນໍາໃຊ້ samouvelichivayuschihsya ໄດ້ (auto _ increment) ທົ່ງນາ, ຊຶ່ງໄດ້ຖືກນໍາໃຊ້ໂດຍປົກກະຕິເພື່ອຕື່ມຂໍ້ມູນໃສ່ໃນຄ່າທີ່ສໍາຄັນປະຖົມ (ປະຖົມ _ ທີ່ສໍາຄັນ). ຖ້າຫາກວ່າທ່ານກໍາລັງໃຊ້ MySQL Update ຄໍາສັ່ງໃນການອອກແບບກັບ Insert ອັດຕະໂນມັດ _ increment, ພາກສະຫນາມແມ່ນໄດ້ເພີ່ມຂຶ້ນຢ່າງຕໍ່ເນື່ອງ.

ເຊັ່ນດຽວກັນ, ທຸກສິ່ງທຸກຢ່າງຈະເກີດຂຶ້ນໃນເວລາທີ່ການນໍາໃຊ້ການກໍ່ສ້າງທົດແທນໃນກໍລະນີຂອງການຊອກຄົ້ນຫາຊ້ໍາໄດ້. "ອັດຕະໂນມັດເພີ່ມ" ຄ່າເພີ່ມຂຶ້ນເຖິງແມ່ນວ່າໃນກໍລະນີທີ່ມັນບໍ່ໄດ້ຖືກຈໍາເປັນ. ດ້ວຍເຫດນີ້, ບັນຫາເກີດຂຶ້ນຄ່າຜ່ານ overflow ຫລືຊ່ວງ, ເຊິ່ງຕໍ່ມານໍາໄປສູ່ການຜິດປະກະຕິຂອງລະບົບການຄຸ້ມຄອງຖານຂໍ້ມູນ.

ສ່ວນຫຼາຍອາດຈະມີບັນຫາ

ອະທິບາຍບັນຫາຕ້ອງໄດ້ຮັບການພິຈາລະນາເວັບໄຊຕ໌ພັດທະນາ, ຍ້ອນວ່າມັນແມ່ນທົ່ວໄປທີ່ສຸດໃນລະບົບຫຼາຍຜູ້ໃຊ້ (ເວັບໄຊທ໌, ສະບັບພິມໄດ້, ແລະອື່ນໆ. P), ໃນເວລາທີ່ລະບົບແມ່ນປະຕິບັດເປັນຈໍານວນຂະຫນາດໃຫຍ່ຂອງຂັ້ນຕອນ Insert ແລະປັບປຸງ MySQL.

PHP - ການອຸທອນເພື່ອຢູ່ໂຄນໄປຫຼາຍມັກຈະປະຕິບັດ. ດັ່ງນັ້ນເພື່ອໃຫ້ບັນລຸອັດຕາກໍາໄຮສູງສຸດ, ກໍານົດເປັນ auto_increment, ເກີດຂຶ້ນຢ່າງໄວວາ, ແລະໃນການວິເຄາະຂອງຄວາມຫຍຸ້ງຍາກໄດ້ພົບເພື່ອສ້າງເຫດຜົນທີ່ພຽງແຕ່ຈະບໍ່ເຮັດວຽກ.

ດັ່ງນັ້ນ, ນັກພັດທະນາໄດ້ຖືກຊຸກຍູ້ໃຫ້ຕັ້ງໃຈທີ່ຈະໃຊ້ການອອກແບບທີ່ສໍາຄັນຊ້ໍາກັນໃນການປັບປຸງຄໍາສັ່ງ mysql ໄດ້. ເລືອກ - ການສອບຖາມໃນເວລາທີ່ການເຂົ້າເຖິງເຄື່ອງແມ່ຂ່າຍຂອງຖານຂໍ້ມູນທີ່ຈະເຮັດວຽກໂດຍບໍ່ມີການຜິດພາດ, ແຕ່ນອກຈາກນັ້ນຂອງການບັນທຶກໃຫມ່ກັບຖານຂໍ້ມູນເປັນ fraught ມີສະຖານະການ່ິນເຫມັນໃນເປັນຜູ້ນໍາພາໃນອະນາຄົດບັນຫາທີ່ຮ້າຍແຮງ. ເຊັ່ນດຽວກັນນີ້, ມັນແມ່ນແນະນໍາໃຫ້ສໍາລັບຂົງເຂດອັດຕະໂນມັດເພີ່ມໃນເບື້ອງຕົ້ນການກວດສອບສໍາລັບການບັນທຶກການຂອງເຂົາເຈົ້າ, ແລະຫຼັງຈາກນັ້ນໃຫ້ເຂົາເຈົ້າຖືການປັບປຸງ.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 lo.unansea.com. Theme powered by WordPress.