6.1 Pagbabago ng istraktura ng database

At sa wakas, ang pinaka masarap na bahagi ng pagtatrabaho sa mga database ay ang pagbabago ng database. Kung sa tingin mo ito ay isang bagay na napakasimple, narito ang isang anekdota para sa iyo sa paksa:


The service station master, wiping his hands, hands over the car to the client and chats along the way:
- But who do you work for?
- I am a cardiac surgeon, I perform heart operations.
- And they pay a lot?
- $20,000 per operation.
- Nothing for myself ... But we, in fact, are doing the same thing, sorting out the engines, and they pay me only $ 300 ...
- Do you want to earn as much as I do?
- Want...
The surgeon starts the engine in the car and turns to the master:
- Move over!

Ang sitwasyon ay eksaktong pareho sa mga database. Gusto mong kumuha ng bahagi ng data sa hiwalay na talahanayan? Okay, kailangan mo:

  • lumikha ng bagong talahanayan
  • kopyahin ang data sa bagong talahanayang ito
  • alisin ang mga column sa lumang table
  • baguhin ang lahat ng mga query sa SQL na tumutukoy sa lumang talahanayan
  • magdagdag ng mga query sa SQL na mag-a-access sa bagong talahanayan
  • baguhin ang Java code na nagtrabaho sa mga talahanayan sa lumang paraan
  • baguhin ang backup at ibalik ang mga script, dahil ngayon ang mga istraktura ng talahanayan ay hindi tumutugma
  • kung mayroon kang data ng pagsubok para sa mga developer, kailangan mo ring baguhin ang mga ito

Bagaman sa katotohanan ito ay mas masahol pa:

Bagong istraktura ng database:

  • baguhin mo muna ang istraktura ng talahanayan sa makina ng developer
  • pagkatapos ay kumbinsido ka na ang gayong istraktura ay talagang mas mahusay
  • aprubahan ang bagong istraktura ng database

Mga script ng paglilipat:

  • sumulat ka ng mga script na magbabago ng data ng talahanayan, atbp. sa isang tunay na database
  • patakbuhin ang mga script na ito sa isang makina na may lumang istraktura ng database at tingnan kung paano ito nagbabago
  • i-verify ang lahat ng mga kritikal na lugar ng bagong base

Update sa pagbebenta

  • itigil ang database ng produksyon
  • gumawa ng buong backup
  • nagsasagawa ng mga script
  • dahil kadalasan ay marami ang nasa merkado, ang mga script na ito ay maaaring gumana nang maraming oras

Inilunsad mo ang prod at umaasa na hindi mo kailangang ibalik ang lahat.

6.2 ALTER TABLE na pahayag

Sa kabilang banda, ang script mismo, na nagbabago sa istraktura ng talahanayan, ay napaka-simple. Sa ilang mga paraan, ito ay katulad ng isang script ng paglikha ng talahanayan. Pangkalahatang view ng isang kahilingan sa pagbabago ng talahanayan:

ALTER TABLE table
team 1,
team 2,
Team N

Ang mga utos ay ibang-iba, ngunit tatlong pangunahing grupo ang maaaring makilala:

  • ADD- nagdadagdag ng isang bagay sa mesa
  • MODIFY- nagbabago ng isang bagay sa talahanayan
  • DROP- nagtatanggal ng isang bagay sa talahanayan

At kapag may sinabi ako, hindi ito tungkol sa data, ngunit tungkol sa istraktura ng talahanayan.

Halimbawa, nagpasya kang magdagdag ng bagong column sa talahanayan, pagkatapos ay kailangan mong isagawa ang sumusunod na query:

ALTER TABLE table
	ADD COLUMN Name type

Sumulat tayo ng query na magdaragdag ng column ng email sa table ng empleyado :

ALTER TABLE employee
	ADD COLUMN email  VARCHAR(10)

Ngayon, baguhin natin ang haba ng string ng email mula 10 hanggang 100: para dito kailangan natin ng bagong script:

ALTER TABLE employee
	MODIFY COLUMN email VARCHAR(100)

Kung gusto mong baguhin ang ilang katangian ng isang column, ngunit hindi ang uri nito, kailangan mo ang command ALTER COLUM . Itakda natin ang default na halaga ng email :

ALTER TABLE employee
	ALTER COLUMN email VARCHAR(100)  DEFAULT 'test@test.com'

At sa wakas, maaaring alisin ang column kung hindi mo ito kailangan:

ALTER TABLE employee
	DROP COLUMN email 

6.3 Pagdaragdag at pag-alis ng pangunahing key

At ilang mas kapaki-pakinabang na mga halimbawa.

Sabihin nating nakalimutan nating ideklara ang column ng id bilang pangunahing key. Maaari mo itong gawin nang hiwalay palagi sa pamamagitan ng ALTER TABLE:

ALTER TABLE employee
	ADD PRIMARY KEY (email);

Ang pag-alis nito ay mas madali:

ALTER TABLE employee
	DELETE PRIMARY KEY;