ຄອມພິວເຕີ, ຖານຂໍ້ມູນ
"ຜິດພະລາດ" 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