Oletame, et meil on andmebaas kontseptuaalse struktuuriga:
[Auto_seisundi_liik]-1-------------0..*-[Auto]
Tabelis Auto ja Auto_seisundi_liik on veerg auto_seisundi_liik_kood tüüpi INTEGER, kuid peaks olema SMALLINT, sest erinevaid auto seisundeid on ainult neli tükki. (auto_seisundi_liik) on tabelis Auto_seisundi_liik primaarvõti ning tabelis Auto välisvõti. Neid kitsendusi pole vaja muudatuse tegemiseks kustutada. Küll aga on vaja eelnevalt kustutada veergudest sõltuvad vaated ning SQL standardi kehandiga SQL funktsioonid. Kui Teil on nende objektide loomise laused olemas, saate kustutamist psqlis automatiseerida gexec käsu abil:
--Skeemis public olevate rutiinide kustutamine
--Skeemis public olevate vaadete kustutamine
Veeru tüübi muutmine:
Peale seda tuleb vaated ja rutiinid uuesti luua.
[Auto_seisundi_liik]-1-------------0..*-[Auto]
Tabelis Auto ja Auto_seisundi_liik on veerg auto_seisundi_liik_kood tüüpi INTEGER, kuid peaks olema SMALLINT, sest erinevaid auto seisundeid on ainult neli tükki. (auto_seisundi_liik) on tabelis Auto_seisundi_liik primaarvõti ning tabelis Auto välisvõti. Neid kitsendusi pole vaja muudatuse tegemiseks kustutada. Küll aga on vaja eelnevalt kustutada veergudest sõltuvad vaated ning SQL standardi kehandiga SQL funktsioonid. Kui Teil on nende objektide loomise laused olemas, saate kustutamist psqlis automatiseerida gexec käsu abil:
--Skeemis public olevate rutiinide kustutamine
SELECT format('DROP ROUTINE %1$I.%2$I CASCADE;', routine_schema, routine_name) AS statementsFROM INFORMATION_SCHEMA.routinesWHERE routine_schema='public'\gexec--Skeemis public olevate vaadete kustutamine
SELECT format('DROP VIEW %1$I.%2$I CASCADE;', table_schema, table_name) AS statementsFROM INFORMATION_SCHEMA.tablesWHERE table_type='VIEW'AND table_schema='public'\gexecVeeru tüübi muutmine:
ALTER TABLE Auto_seisundi_liik ALTER COLUMN auto_seisundi_liik_kood SET DATA TYPE SMALLINT;ALTER TABLE Auto ALTER COLUMN auto_seisundi_liik_kood SET DATA TYPE SMALLINT;Peale seda tuleb vaated ja rutiinid uuesti luua.
Kas postitus oli kasulik? Hinda seda!
Keskmine hinne: Pole veel hinnanguid!