Pervadinant pasukamą lentelę duomenų bazėje, kurioje yra užsienio raktų apribojimai, nurodantys ją, reikia kruopščiai tvarkyti, kad būtų išvengta šių apribojimų. Pagrindinis susirūpinimas yra tas, kad užsienio raktai priklauso nuo lentelės pavadinimo, taigi, jei pervardysite lentelę neatnaujindami ar numesdami užsienio raktų, greičiausiai susidursite su klaidomis ar sugedusiomis nuorodomis.
Čia pateiktas išsamus paaiškinimas ir požiūris:
Suprasti iššūkį
-„Pivot“ lentelė: Paprastai šerdies lentelė yra sankryžos lentelė, naudojama daugelio ir daugelio santykiuose. Jame dažnai yra užsienio raktų, nurodančių dvi ar daugiau kitų lentelių.
- Užsienio raktai: Šie veikiantys referencinis vientisumas, susiejant stulpelius, esančius „Pivot“ lentelėje, su pirminiais klavišais kitose lentelėse.
- Lentelės pervadinimas: Kai pervardote lentelę SQL, užsienio raktų apribojimai, nurodantys šią lentelę arba apibrėžti ant šios lentelės, gali tapti neteisinga, jei nebus tinkamai tvarkoma.
Ar galite pervardyti „Pivot“ lentelę, nenuleisdami užsienio raktų?
- Tiesioginis pervadinimas nenukreipiant užsienio raktų paprastai nepalaikoma daugelyje reliacinių duomenų bazių valdymo sistemų (RDBMS). Taip yra todėl, kad užsienio raktai yra glaudžiai susiję su jų nurodytais lentelėmis ir stulpelių pavadinimais.
- Kai kurie RDBMS neleidžia pervadinti lentelės, jei joje yra priklausomi užsienio raktai, prieš tai neišlaikant ar neįgalūs tų raktų.
- Kiti gali leisti pervardyti, tačiau automatiškai atnaujinti užsienio raktų nuorodas iš vidaus (retesnės).
Kaip saugiai pervardyti „Pivot“ lentelę
1 žingsnis: patikrinkite savo RDBMS palaikymą ir sintaksę
- Skirtingose duomenų bazėse yra skirtingos komandos ir elgesys.
- Pavyzdžiui:
- „MySQL“: lentelę galite pervardyti naudodami „pervardyti lentelę Old_name“ į new_name; `, tačiau užsienio raktai, nurodantys šią lentelę, turi būti iš anksto atmesti.
- „PostgreSQL“: palaiko „Alter Belon Old_name pervardyti į new_name;` ir automatiškai atnaujina užsienio raktus, nurodančius pervadintą lentelę.
- „SQL Server“: „sp_rename“ naudoja lenteles pervardyti, tačiau užsienio raktai turi būti tvarkomi atidžiai.
2 žingsnis: Patikrinkite užsienio raktus ant „Pivot“ lentelės
- Nurodykite visus užsienio raktus, kurie nurodo pasukimo lentelę arba ant jos yra apibrėžtos.
- Norėdami išvardyti užsienio raktus, naudokite sistemos katalogų užklausas arba informacijos schemos rodinius.
3 žingsnis: pervardykite lentelę
- Jei jūsų RDBMS palaiko automatinius užsienio raktų pervadinimo atnaujinimus (pvz., „PostgreSQL“), galite tiesiog pervardyti lentelę naudodami atitinkamą „alter lentelės“ arba „pervardymo“ komandą.
- Jei ne, turite:
- Išmeskite užsienio raktus, nurodančius „Pivot“ lentelę.
- Pervardykite „Pivot“ lentelę.
- Atkurkite užsienio raktus nauju lentelės pavadinimu.
4 žingsnis: Atnaujinkite programos kodą arba užklausas
- Po pervardymo įsitikinkite, kad visas programos kodas, saugomos procedūros, rodiniai ar užklausos, nurodančios senąjį „Pivot“ lentelės pavadinimą, atnaujinami, kad būtų galima naudoti naują pavadinimą.
Santrauka pagal duomenų bazę
- „PostgreSQL“: „Pivot“ lentelę galite pervardyti naudodamiesi „Alter Table Old_name“ pervardyti į new_name; `nenuleisdami užsienio raktų. „PostgreSQL“ automatiškai atnaujina užsienio raktų nuorodas.
- „MySQL“: jūs turite mesti užsienio raktus, nurodančius pasuktų lentelę, pervardyti ją, tada atkurti užsienio raktus.
- SQL serveris: Paprastai jums reikia mesti užsienio raktus, pervardyti lentelę naudodami „sp_rename“, tada atkurti užsienio raktus.
- „Oracle“: Panašiai kaip „SQL Server“, gali tekti mesti ir atkurti užsienio raktus.
geriausia praktika
- Prieš atlikdami schemos pakeitimus, visada kurkite atsarginę duomenų bazę.
- Išbandykite pervardymo operaciją plėtros ar sustojimo aplinkoje.
- Jei palaikysite, naudokite operacijas, todėl galite grįžti atgal, jei kažkas nutinka ne taip.
- Dokumentuokite būsimos nuorodos pakeitimus.
Jei pranešite man, kurią duomenų bazės sistemą naudojate, galiu pateikti tikslias komandas ir žingsnis po žingsnio vadovą, pritaikytą jūsų aplinkai!