Re: Using ResultSetMetaData.getColumnTypeName
От | dmp |
---|---|
Тема | Re: Using ResultSetMetaData.getColumnTypeName |
Дата | |
Msg-id | 4CA4B980.1010108@ttc-cmc.net обсуждение исходный текст |
Ответ на | Using ResultSetMetaData.getColumnTypeName (David Goodenough <david.goodenough@btconnect.com>) |
Список | pgsql-jdbc |
> > I am trying to write some code to copy the definition of a database with all > its tables and keys, and I am trying to do it in Java using JDBC. You may > think that I am mad and that there are better ways of doing this, but in this > case I am already within a Java app, and so using native facilities is more > trouble than it is worth. > > The problem I have hit is that getColumnTypeName does not return say > numeric or int for a number, but a size specific name like int4. If you then > use int4 as the type you can not use the precision (it is implicit I guess) > in the column type. So you can say "fred int(10)" or "fred int4" but not > "fred int4(10)". So I guess my question is whether there is a simple way > to work out whether a given column type name is or is not allowed to be > followed by a precision. > > I suppose I could use getColumnType and convert those into strings, > but then one has to ask why getColumnTypeName exists. > > David > > BTW, I tried googling to find some code to do this, and I found some > MySql specific code but nothing for Postgresql. If someone has already > done this I would much rather use tested code than reinvent the wheel. Hello, I ran into similar problems with generating DDL in the MyJSQLView project, and created code to I believe gather the information you desire. I have not checked with the new PostgreSQL database release or for that matter a couple of months since the updated release of JDBC. You may find the source code at the Google Code, class TableDefinitionGenerator under utilities/com/dandymadeproductions/myjsqlview http://code.google.com/p/myjsqlview/source/browse/trunk/myjsqlview/src If I remember correctly it was not straight forward and I have not revisited to see if there is a better way. danap.
В списке pgsql-jdbc по дате отправления: