ďťż
 
[DB2] Dropowanie kolumny. ďťż
 
[DB2] Dropowanie kolumny.
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[DB2] Dropowanie kolumny.



Jan Słupicki - 28-02-2006 13:11
[DB2] Dropowanie kolumny.
  Czy można jakoś bezboleśnie dropować kolumnę?
Czytam o ALTER TABLE dla DB2 i jakoś nie mogę
się doczytać jak można zdropować albo zmienić nazwę
kolumnie.
Dodałem właśnie kolumnę do tabeli ale zrobiłem literówkę.
Chciałbym teraz zmienić nazwę kolumny (lub zdropować i
dodać od nowa). Tabela ma dużo danych i jest mocno
powiązana foregin key-ami z innymi tabelami (jest jeszcze
sporo triggerów) więc nie bardzo mi się uśmiecha kopiowanie
danych do tymczasowej tabeli i utworzenie tabeli od nowa.

--
Jan Słupicki





mgl - 28-02-2006 13:11

  Jan Słupicki wrote:

> Czy można jakoś bezboleśnie dropować kolumnę?
> Czytam o ALTER TABLE dla DB2 i jakoś nie mogę
> się doczytać jak można zdropować albo zmienić nazwę
> kolumnie.

To zalezy, o jakie DB2 UDB chodzi - w wersji "for ISeries" v5r4 mozna
zrobic po prostu:

ALTER TABLE tablex
DROP COLUMN columnx

Natomiast w wersji dla Windows, Linux i Unix zdaje sie nie ma takiej
mozliwosci. Rozwiazania sa wiec dwa:

1. Nowy widok z nazwami kolumn wedle uznania.
2. Stworzenie nowej tabeli z poprawna nazwa kolumny i przekopiowanymi
danymi.

pozdrawiam,
--
mgl




Jan Słupicki - 28-02-2006 13:11

  > To zalezy, o jakie DB2 UDB chodzi - w wersji "for ISeries" v5r4 mozna
> zrobic po prostu:
>
> ALTER TABLE tablex
> DROP COLUMN columnx
>
> Natomiast w wersji dla Windows, Linux i Unix zdaje sie nie ma takiej
> mozliwosci. Rozwiazania sa wiec dwa:

Wersja 8.0 Enterprise dla Windows. Jak rozumiem to oznacza że
nie ma DROP COLUMN - szkoda :-(

> 1. Nowy widok z nazwami kolumn wedle uznania.
> 2. Stworzenie nowej tabeli z poprawna nazwa kolumny i przekopiowanymi
> danymi.

Chyba trzeba będzie tak zrobić. Trochę zejdzie mi na pisaniu
skryptu dropującego wszelkie constrainy i triggery ale jak nie ma wyboru ...
Zdaje się że w DB2 nie działa konstrukcja
INSERT INTO tab1 SELECT * FROM tab2
dla więcej niż jednego wiersza. Czy jest jakaś zgrabna konstrukcja
do skopiowania tabeli ?

--
Jan Słupicki




mgl - 28-02-2006 13:12

  Jan Słupicki wrote:
> Chyba trzeba będzie tak zrobić. Trochę zejdzie mi na pisaniu
> skryptu dropującego wszelkie constrainy i triggery ale jak nie ma wyboru
> ...
> Zdaje się że w DB2 nie działa konstrukcja
> INSERT INTO tab1 SELECT * FROM tab2
> dla więcej niż jednego wiersza. Czy jest jakaś zgrabna konstrukcja
> do skopiowania tabeli ?

Nie korzystałem nigdy z DB2 UDB (tylko DB2/400), ale przejrzyj:

"Changing or Dropping a Column in DB2":
http://www-1.ibm.com/support/docview...=utf-8&lang=en

"Using Export":
http://publib.boulder.ibm.com/infoce...n/t0004554.htm

"Using import":
http://publib.boulder.ibm.com/infoce...n/t0004575.htm

pozdrawiam,
--
mgl





Jan Słupicki - 28-02-2006 13:12

  > Nie korzystałem nigdy z DB2 UDB (tylko DB2/400), ale przejrzyj:
>
> "Changing or Dropping a Column in DB2":
> http://www-1.ibm.com/support/docview...=utf-8&lang=en
>
> "Using Export":
> http://publib.boulder.ibm.com/infoce...n/t0004554.htm
>
> "Using import":
> http://publib.boulder.ibm.com/infoce...n/t0004575.htm

Dzięki za linki.

--
Jan Słupicki




mgl - 28-02-2006 13:12

  Jan Słupicki wrote:
> Dzięki za linki.

Daj znać, jak poszło :)

pozdrawiam,
--
mgl




Krzysztof Paz - 13-03-2006 11:19

 
"Jan Słupicki" <j.slupicki@provider.pl> wrote in message
news:dtlcve$7c9$1@atena.e-wro.net...
[...]
>
> Chyba trzeba będzie tak zrobić. Trochę zejdzie mi na pisaniu
> skryptu dropującego wszelkie constrainy i triggery ale jak nie ma wyboru
> ...
> Zdaje się że w DB2 nie działa konstrukcja
> INSERT INTO tab1 SELECT * FROM tab2
> dla więcej niż jednego wiersza. Czy jest jakaś zgrabna konstrukcja
> do skopiowania tabeli ?

nie wiem czy to będzie najlepszy sposób, ale można zadziałać tak:
[db2start]
[db2 connect to mojabaza]
db2 create table nowa like stara
db2 insert into nowa select * from stara

- z dokładnością do tego, że być może warto uzupełnić trzecie polecenie o
opcje kopiowania opisane tutaj:
http://publib.boulder.ibm.com/infoce...n/r0000927.htm
>>-CREATE--TABLE--table-name------------------------------------>

>--+-| element-list |----------------------------+--*----------->
+-OF--type-name1--+-------------------------+-+
| '-| typed-table-options |-' |
+-| materialized-query-definition |-----------+
+-| staging-table-definition |----------------+
'-LIKE--+-table-name1-+--+------------------+-'
+-view-name---+ '-| copy-options |-'
'-nickname----'...copy-options:
These options specify whether or not to copy additional attributes of the
source result table definition (table, view or fullselect).
INCLUDING COLUMN DEFAULTS
Column defaults for each updatable column of the source result table
definition are copied. Columns that are not updatable will not have a
default defined in the corresponding column of the created table.
If LIKE table-name is specified and table-name identifies a base table or
declared temporary table, then INCLUDING COLUMN DEFAULTS is the default.

EXCLUDING COLUMN DEFAULTS
Columns defaults are not copied from the source result table definition.
This clause is the default, except when LIKE table-name is specified and
table-name identifies a base table or declared temporary table.

INCLUDING IDENTITY COLUMN ATTRIBUTES
Identity column attributes are copied from the source result table
definition, if possible. It is possible to copy the identity column
attributes, if the element of the corresponding column in the table, view,
or fullselect is the name of a table column, or the name of a view column
which directly or indirectly maps to the name of a base table column with
the identity property. In all other cases, the columns of the new table will
not get the identity property. For example:
a.. the select-list of the fullselect includes multiple instances of an
identity column name (that is, selecting the same column more than once)
b.. the select list of the fullselect includes multiple identity columns
(that is, it involves a join)
c.. the identity column is included in an expression in the select list
d.. the fullselect includes a set operation (union, except, or
intersect).
EXCLUDING IDENTITY COLUMN ATTRIBUTES
Identity column attributes are not copied from the source result table
definition.

Inną opcją jest skorzystanie z graficznego narzędzia administracji (db2cc),
w którym klikamy prawym przyciskiem na obiektem tabeli i wybieramy alter,
potem wskazujemy kolumne i naciskamy remove. Narzędzie to umożliwi też
podejrzenie wygenerowanego kodu realizującego takie zadanie - przykład ze
strukturą tabeli EMPLOYEE bazy sample i dropowaniem kolumny JOB:
CONNECT TO MOJABAZA;
CALL SYSPROC.ALTOBJ ( 'APPLY_CONTINUE_ON_ERROR', 'CREATE TABLE DB2.NOWA1 (
EMPNO CHARACTER (6) NOT NULL , FIRSTNME VARCHAR (12) NOT NULL , MIDINIT
CHARACTER (1) NOT NULL , LASTNAME VARCHAR (15) NOT NULL , WORKDEPT
CHARACTER (3) , PHONENO CHARACTER (4) , HIREDATE DATE , EDLEVEL SMALLINT
NOT NULL , SEX CHARACTER (1) , BIRTHDATE DATE , SALARY DECIMAL (9, 2) ,
BONUS DECIMAL (9, 2) , COMM DECIMAL (9, 2) ) IN USERSPACE1 ', 1, ? );
;
CONNECT RESET;

Pozdrawiam,
Krzysztof
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Jak =?ISO-8859-2?Q?zamieni=E6_dwa_pola_jednej_kolumny_?==?ISO-8859-2?Q?w_dw=F3ch_rekordach_za_pomoc=B1_jednego_zapyt? ==?ISO-8859-2?Q?ania=3F?= [mysql] =?ISO-8859-2?Q?po=B3=B1czenie_tabel_wg_kolumn=2C_?==?ISO-8859-2?Q?nie_wierszy?= ms sql server - =?ISO-8859-2?Q?domy=B6lny_format_kolumn_ty?==?ISO-8859-2?Q?pu_datetime?= [ORACLE] Dodanie kolumny typu BLOB - =?ISO-8859-2?Q?wp=B3yw_na?==?ISO-8859-2?Q?_wydajno=B6c?= =?ISO-8859-2?Q?=5BORACLE=2C_ORDER_BY=5D_Czy_indeksowane_?==?I SO-8859-2?Q?kolumny_przy=B6piesz=B1_sortowanie=3F?= pytanie o zapytanie z having count = count z innej kolumny [MySQL/PHP] Wyszukiwanie rekordu przez kolumnę wskazaną przez zmienną =?iso-8859-2?q?Pytanie_SQL__spe=B3niaj=B1ce_wiecej_jak_jeden_ warunek_na_jednej_kolumnie=2E?= =?iso-8859-2?Q?=5BMSSQL2005=5D_Zawarto=B6c_kolumny_varbinary= 28max=29_?= SELECT MAX(nazwaPola) FROM tabela WHERE .... i ORA-01405: pobran? warto?ci? kolumny jest NULL
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • adwokat.keep.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com