【问题标题】:JAVA & MySQL unwanted extra columnJAVA & MySQL 不需要的额外列
【发布时间】:2016-02-20 13:10:24
【问题描述】:

所以基本上我创建了一个数据库,里面有一个表(仅用于测试目的),有 2 个元素(第一个 VARCHAR(255) 和年龄 INTEGER),如下所示:

protected void createTableExamPeriod() throws SQLException {
    //STEP 4: Execute a query
      System.out.println("Creating table in given database...");
      stmt = conn.createStatement();

      String drop = "DROP TABLE IF EXISTS REGISTRATION ";
      String table = "CREATE TABLE IF NOT EXISTS REGISTRATION " +
                   " (first VARCHAR(255), " + 
                   " age INTEGER )"; 

      stmt.executeUpdate(drop);
      stmt.executeUpdate(table);
      populateExamPeriodTable();
      System.out.println("Created table in given database...");
}

但是当我查看我的数据库时,有一个额外的列,名为 'New' :

所以我的问题是,我如何摆脱这个额外的列,因为现在,由于这个额外的列,我无法在其中插入“正确”数量的参数:

protected void populateExamPeriodTable() throws SQLException {
    Statement stmt = conn.createStatement();
    String insertSql = "INSERT REGISTRATION VALUES(3 + 2 + 5)";

    stmt.executeUpdate(insertSql);
}

【问题讨论】:

  • 您的 INSERT 语句不起作用,因为您只提供了 1 值,并且该表有两列。对于您的INSERT,您希望列first 具有什么价值?
  • 3 + 2 + 5 是一个计算结果为10 的表达式,所以你说的是INSERT REGISTRATION VALUES(10)。多个值必须用逗号分隔(,),并且您的第一个值应该是字符串文字,因为列是VARCHAR,这意味着您应该使用:INSERT REGISTRATION VALUES('Hello', 10)
  • 谢谢!我现在改了!非常感谢大家!祝你有美好的一天! :)

标签: java mysql jdbc phpmyadmin


【解决方案1】:

New 不是新列 PHPMyAdmin 显示它以图形方式添加新列

【讨论】:

  • 我刚刚尝试更改:String insertSql = "INSERT REGISTRATION VALUES(2 + 5)";所以我有 2 个值,而不是 3 个值,但它仍然给了我列计数与第 1 行的值计数不匹配它不可能是这样,但有道理!谢谢你的回答
  • @user3153278 INSERT 语句只有 one 值。 2 + 5 等于 7,所以你说的是 INSERT REGISTRATION VALUES(7)
  • @user3153278 你的 sql 语句需要一个字符串和一个整数,(2 + 5) 只给出一个值
【解决方案2】:

要摆脱这个额外的列,就像现在一样,您可以删除该列并创建一个有效的代码来创建包含 正确 个参数的表,因为这个额外的列是多余的:

alter table registration drop column `New`;
create table registration (first VARCHAR(255), age INT);

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 2018-05-12
    • 2016-10-24
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多