On 6/14/06, Douglas Granzotto (Infoarte) <[EMAIL PROTECTED]> wrote:

I am using the following method:
String getAlterTablesSql(Database desiredDb, boolean doDrops, boolean 
modifyColumns, boolean continueOnError)
from Plataform

It is returning this sql code:
ALTER TABLE IPI
    ADD CLASSFISCAL VARCHAR(12);

ALTER TABLE IPI
    ALTER CLASSFISCAL POSITION 4;

CREATE TABLE IPI_
(
    IPICOD VARCHAR(2) NOT NULL,
    IPIDESC VARCHAR(30),
    TIPO INTEGER,
    CLASSFISCAL VARCHAR(12),
    VERSAO INTEGER,
    PRIMARY KEY (IPICOD)
);

INSERT INTO IPI_ (CLASSFISCAL,IPICOD,IPIDESC,TIPO,VERSAO) SELECT 
CLASSFISCAL,IPICOD,IPIDESC,TIPO,VERSAO FROM IPI;

DROP TABLE IPI;

CREATE TABLE IPI
(
    IPICOD VARCHAR(2) NOT NULL,
    IPIDESC VARCHAR(30),
    TIPO INTEGER,
    CLASSFISCAL VARCHAR(12),
    VERSAO INTEGER,
    PRIMARY KEY (IPICOD)
);

CREATE INDEX IX_IPI_1 ON IPI (IPIDESC);

INSERT INTO IPI (IPICOD,IPIDESC,TIPO,CLASSFISCAL,VERSAO) SELECT 
IPICOD,IPIDESC,TIPO,CLASSFISCAL,VERSAO FROM IPI_;

DROP TABLE IPI_;



I believe that it would be necessary, only this:
ALTER TABLE IPI
    ADD CLASSFISCAL VARCHAR(12);

ALTER TABLE IPI
    ALTER CLASSFISCAL POSITION 4;

Since I only added a column.
I don't understand, why of the remaining of the code.
CREATE TABLE IPI_, INSERT INTO IPI_,
DROP TABLE IPI, etc

This depends on what platform you use. Some databases fully support
adding columns (e.g. MySQL), for some this can only be used under
specific conditions, and for some, there is no way of adding the
column except by re-creating the table as is done in the SQL that you
posted.

Tom

Reply via email to