Cum se schimbă tipul câmpului, lungimea câmpului, sau ordinea de câmp
Cum se schimbă tipul câmpului, lungimea câmpului, sau ordinea de câmp
Începând cu versiunea 6.0 Interbase Toate următoarele este un pic de un hack, deoarece în InterBase 6 și toate versiunile operatorului coloană de tabel susținut mai sus (Interbase, Firebird, Yaffil). A se vedea. Documentația.
Pentru a începe cu, standardul (ANSI SQL 92 intrare nivel) Nici o limbă constructele pentru determinarea tipului de modificare câmp. Cu toate acestea, nucleul IB poate dura mai bine astfel de acțiuni, datorită unui mecanism special de monitorizare a conformității datelor fizice, precum și informații cu privire la tipurile lor în tabelele de sistem.
Acest lucru se face acest lucru (cel mai bine este de a rula Explorer Baza de date cu includerea elementului View / Date Sistem):
1. Localizați câmpul în tabelul de RDB $ RELATION_FIELDS după nume podea (RBD $ .FIELD_NAME) și nume de tabel (RDB $ RELATION_NAME). Notă conținutul RDB $ FIELD_SOURCE - ar trebui să fie ceva de genul RDB $ NNN.
2. obținut RDB $ nnn acum găsi în tabelul de RDB $ DOMENII
3. Modificați valorile de pe lungimea dorită a câmpului (RDB $ FIELD_LENGTH) sau câmpuri de tip (RDB $ field_type). Modificări ordine de câmp în RDB $ FIELD_POSITION
Notă: în Database Explorer, puteți accelera punerea în aplicare a alineatului 1 - deschide baza de date, selectați tabele, tabelul dorit, coloanele, și câmpul dorit. Definirea câmpului în valoarea câmpului de domeniu și corespunde cu ceea ce căutați (RDB $ NNN). Apoi, efectuați pașii 2 și 3.
În acest caz, veți mai vedea în continuare vechile informații cu privire la câmpurile de masă. Vei vedea o nouă structură după reconectare la baza de date. În acest caz, baza de date va fi următoarea:
IB este deosebit de caracteristică utilă atunci când trebuie să modificați lungimea unui câmp șir, puteți fi nesăbuit, determinată prea mici. De exemplu, CHAR (20) pe CHAR (50), etc.
Ann Harrison a oferit cereri gata făcute pentru schimbări în lungimea șirului (CHAR și VARCHAR) tipurile din tabel:
Schimbarea tipului de BLOB:
(În acest exemplu, orice subtip la subtipul 0)
câmpuri RDB $ f set f.rdb $ field_sub_type = 0
în cazul în care f.rdb $ FIELD_NAME =
(Selectați $ field_source rfr.rdb
de la RDB $ relation_fields RFR
în cazul în care rfr.rdb $ FIELD_NAME = "COLUMN_NAME" și rfr.rdb $ relation_name = "TABLE_NAME"