You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@empire-db.apache.org by bachew <ap...@gmail.com> on 2009/01/29 08:30:03 UTC
How about drop/alter table and column?
Hi,
I did some quick search in the API, couldn't find API to drop/alter table
and column. This is important because some applications might perform data
model upgrade.Please advise.
AW: How about drop/alter table and column?
Posted by Rainer Döbele <do...@esteam.de>.
Hi bachew,
what you need is a DBScript object and the getDLLScript() method on DBDatabaseDriver.
Here's an example how to do it:
// required objects
DBDatabaseDriver driver = db.getDriver();
DBSQLScript script = new DBSQLScript();
// create a new table
DBTable Employees = new Employees(db);
driver.getDDLScript(DBCmdType.CREATE, Employees, script);
script.run(driver, conn, false);
// create a new column (if table already exists)
DBTableColumn myColumn = Employees.addColumn("MyColumn", DataType.TEXT, 50, true);
driver.getDDLScript(DBCmdType.CREATE, myColumn, script);
script.run(driver, conn, false);
// drop the column
driver.getDDLScript(DBCmdType.DROP, myColumn, script);
script.run(driver, conn, false);
Employees.getColumns().remove(myColumn); // remove it from the table object!
// drop a table
driver.getDDLScript(DBCmdType.DROP, Employees, script);
script.run(driver, conn, false);
db.getTables().remove(Employees); // remove the table object from the db
I recommend debugging through the advanced sample (SampleAdvApp).
The method ddlSample() does exactly what you are asking for and performs a data model change at runtime.
Regards,
Rainer
bachew wrote:
/
/ re: How about drop/alter table and column?
/
/ Hi,
/ I did some quick search in the API, couldn't find API to drop/alter table and column. This is important because / some applications might perform data model upgrade.
/ Please advise.