Postgres pro standard dokumentáció 9
5.5. A táblák cseréje
Ha létrehozott táblázatokat, és rájött, hogy hibát követett el, vagy az alkalmazás követelményei módosultak, törölheti és létrehozhatja újra. De kényelmetlen lesz, ha az asztal már tele van adattal, vagy más adatbázis objektumokra hivatkozik (például külső kulcs). Ezért a Postgres Pro parancsokat tartalmaz a táblák módosítására. Ne feledje, hogy ez lényegében különbözik a táblázatban szereplő adatok megváltoztatásától: itt tárgyaljuk a táblázat definíciójának vagy szerkezetének módosítását.
Az alapértelmezett értékek módosítása5.5.1. Egy oszlop hozzáadása
Hozzáadhat egy ilyen oszlopot:
Az új oszlopban az alapértelmezett érték szerepel (vagy NULL, ha nem adja hozzá a DEFAULT utasítást).
Ebben az esetben azonnal meghatározhatja az oszlopkorlátokat a szokásos szintaxissal:
Valójában a CREATE TABLE parancs oszlopdefiníciójában engedélyezett összes konstrukciót használhatja. Ne feledje azonban, hogy az alapértelmezett értéknek meg kell felelnie ezeknek a korlátozásoknak, hogy az ADD művelet sikerüljön. Először is kitöltheti helyesen az oszlopot, majd hozzáadhatja a korlátozásokat (lásd alább).
Az alapértelmezett értékkel rendelkező oszlopok hozzáadásával a táblázat összes sorát megváltoztatják (új értéket tárolnak). Ha azonban nincs megadva alapértelmezett érték, akkor a Postgres Pro fizikai módosítás nélkül is elvégezhető. Ezért ha egy oszlopot többnyire nem alapértelmezett értékekkel kíván feltölteni, akkor jobb, ha egy oszlopot hozzáad az alapértelmezett értékhez, majd írja be a szükséges értékeket az UPDATE segítségével. majd határozza meg az alapértelmezett értéket, az alábbiak szerint.
5.5.2. Egy oszlop törlése
Törölhet egy ilyen oszlopot:
Az ebben az oszlopban található adatok eltűnnek. Az oszlopmal együtt a táblázati korlátokat is beleértve törli. Ha azonban az oszlop egy másik táblázat külföldi kulcskorlátjára utal, a Postgres Pro nem veszi ezt a korlátozást implicit módon. A CASCADE nyilatkozat hozzáadásával engedélyezheti az ezen oszloptól függő objektumok törlését.
A mögötte lévő általános mechanizmust az 5.13. Szakasz írja le.
5.5.3. Adja meg a korlátozást
Korlátozás hozzáadásához használja a táblázat kényszerítő szintaxist. Például:
Olyan NOT NULL kényszer hozzáadásához, amelyet asztali kényszerként nem lehet írni, használja a következő szintaxist:
A korlátozást automatikusan tesztelik, és csak akkor adják hozzá, ha elégedettek a táblázatban szereplő adatokkal.
5.5.4. Távolítsa el a kényszert
A korlátozás eltávolításához ismernie kell a nevét. Ha nem adtad meg neki a nevet, a rendszer implicit módon tett rá, és meg kell tudnia. A psql \ d tbl_name parancs (vagy más, a táblákra vonatkozó részletes információkat tartalmazó program) itt hasznos lehet. A név ismerete a következő paranccsal használható:
(Ha $ 2 korlátozási névvel foglalkozik, győződjön meg róla, hogy idézőjelbe csatolja, hogy érvényes azonosító legyen.)
Mint egy oszlop törléséhez, ha el szeretné távolítani a korlátozást függő objektumokkal, add hozzá a CASCADE utasításhoz. Az ilyen függőség példája lehet az elsődleges kulcskorlátozó oszlopokkal társított külföldi kulcskorlátozás.
Így eltávolíthatja a bármilyen típusú korlátozást, kivéve NINCS NULL. A NOT NULL korlát eltávolításához használja a következő parancsot:
(Ne feledje, hogy a NOT NULL-nek nincsenek nevei.)
5.5.5. Módosítsa az alapértelmezett értéket
Hozzon létre egy új alapértelmezett értéket az oszlophoz az alábbiak szerint:
Ne feledje, hogy ez semmilyen módon nem érinti a táblázat meglévő sorát, hanem egyszerűen beállítja az alapértelmezett értéket a következő INSERT parancsokhoz.
Az alapértelmezett érték törléséhez futtassa a következőket:
Ebben az esetben valójában az alapértelmezett érték egyszerűen NULL-ra van állítva. Ennek következtében nem lesz hiba, ha megpróbálja törölni az alapértelmezett értéket, amely nincs kifejezetten meghatározva, mivel implicit módon létezik, és NULL.
5.5.6. Az oszlop adattípusának megváltoztatása
Egy oszlop másik adattípushoz történő konvertálásához használja a következő parancsot:
Csak akkor lesz sikeres, ha az oszlopban lévő összes meglévő érték implicit módon új típusú lesz. Ha összetettebb konverziót igényel, felveheti a HASZNÁLATI mutatót. Annak meghatározása, hogyan lehet új értékeket szerezni a régiekből.
A Postgres Pro megpróbálja átalakítani az alapértelmezett oszlop alapértelmezett értékét (ha meg van határozva) az új típushoz és az adott oszlophoz tartozó összes korlátozáshoz. De az átalakítás nem feltétlenül igaz, és akkor váratlan eredményeket kap. Ezért általában jobb eltávolítani az összes oszlopkorlátot, mielőtt megváltoztatná a típusát, majd újra létrehozhatja a megfelelően módosított korlátokat.
5.5.7. Egy oszlop átnevezése
Az oszlop átnevezése: