2015-11-18 3 views
0

Поэтому в основном я создал базу данных с одной таблицей внутри (только для целей тестирования), имеющие 2 элементов (первый VARCHAR (255) и возраст Integer), как это:JAVA & MySQL нежелательная дополнительная колонка

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..."); 
} 

Но когда я смотрю в моей базе данных, есть дополнительный столбец, называемый «Новый»: enter image description here

так что мой вопрос, как я могу избавиться от этой дополнительной колонки, как и сейчас, я не могу вставить «правильное» количество аргументов внутри него, из-за этого дополнительного столбца, когда я делаю:

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

    stmt.executeUpdate(insertSql); 
} 
+0

Вашего 'INSERT' заявление не работает, потому что только вы предоставили **-** значение, и эта таблица имеет два столбца , С вашим 'INSERT', какое значение вы бы ожидали от столбца' first'? – Andreas

+0

Получил! Спасибо! – user3153278

+1

'3 + 2 + 5' - это выражение, которое оценивается как' 10', поэтому вы говорите «ВСТАВЛЯЕМЫЕ ЗНАЧЕНИЯ РЕГИСТРАЦИИ (10)». Несколько значений должны быть разделены запятой (','), а ваше первое значение должно быть строковым литералом, так как столбец «VARCHAR», что означает, что вы должны использовать: 'INSERT REGISTRATION VALUES ('Hello', 10)' – Andreas

ответ

0

Чтобы избавиться от этой дополнительной колонки, а прямо сейчас, вы можете оставить столбец и создать правильный код, чтобы создать таблицу с правильного числа аргументов внутри него, из-за этого дополнительного столбца избыточна:

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

New не новый столбец PHPMyAdmin показывает его, чтобы добавить новый столбец графический

+0

Значок '+'. –

+0

Я просто попробовал изменить: String insertSql = "ВСТАВКИ ЗНАЧЕНИЙ РЕГИСТРАЦИИ (2 + 5)"; Так у меня было 2, вместо 3-х значений, но все же дал мне граф Column не совпадает с количеством значений в строке 1 Это не может быть, но имеет смысл быть! Благодарим вас за ответ – user3153278

+0

@ user3153278 Этот оператор 'INSERT' имеет только ** одно ** значение. '2 + 5' равно' 7', поэтому вы говорите «ЦЕННОСТИ РЕГИСТРАЦИИ ВСТАВКИ (7)». – Andreas

Смежные вопросы