【发布时间】:2017-06-29 17:16:57
【问题描述】:
如何使用 JDBC 连接 MySQL 中表的 Java 将数据类型从 varchar 更改为 int?
我尝试使用查询:
Alter table table_name CHANGE 'col 1' 'col 1' int (5 );
我使用导入选项导入的文件具有 varchar 中的值,但我只需要该表中的整数值。导入表的值不是有序的,但整数值对我很有用。
当我在 phpmyadmin 中使用 alter 查询时,它工作得非常好,但是当我尝试在 jdbc 中进行更改时,它给了我错误:
Incorrect integer value: at 'col 1';
jdbc 代码如下:
try {
Connection co=DriverManager.getConnection("jdbc:mysql://localhost:3306/csv_db","root",null);
String c= " ALTER TABLE tpf1 MODIFY `col 3` int(5)";
String t="Alter table table_name CHANGE 'col 1' 'col 1' int (5 );";
Statement stmt=co.createStatement();
stmt.executeUpdate(t);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, ex);
}
编辑
try {
Connection co=DriverManager.getConnection("jdbc:mysql://localhost:3306/csv_db","root",null);
String c= " ALTER TABLE tpf1 MODIFY `col ` int(20)";
Statement stmt=co.createStatement();
stmt.executeUpdate(t);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, ex);
}
这实际上是一个pdf文件并将其转换为.csv并导入我的数据库 而且我只需要表格中的整数值,而不需要任何其他字母和符号。 此代码仅适用于一列,我需要更改所有三列。那么我应该怎么做才能使用 jdbc 只获取整数值? :| :)
【问题讨论】:
-
只需触发另一个查询。请参阅思考链接以获取适当的查询。 stackoverflow.com/questions/21784201/…
-
你知道如何改变这一切吗,或者你还在纠结如何用 JDBC 来执行它?
-
您需要使用
`col 1`而不是'col 1',尽管这也可能意味着col 1包含一个不可转换为整数值的值。 -
或在两个
[col 1]之间@MarkRotteveel -
@YCF_L 这对 MySQL 有用吗?我认为那是特定于 MS Access、SQL Server 和 Sybase 的。
标签: java jdbc sqldatatypes alter-table