Пожалуйста, у меня есть таблица, называемая sales
которая имеет 6 столбцов, причем первый столбец устанавливается как auto_increment
. То есть, у меня есть эта таблица;
CREATE TABLE 'sales' (
'billno' int(11) NOT NULL AUTO_INCREMENT,
'date' varchar(20) DEFAULT NULL,
'item_code' int(16) DEFAULT NULL,
'item_name' varchar(15) DEFAULT NULL,
'quantity' int(7) DEFAULT NULL,
'amount' int(15) DEFAULT NULL,
PRIMARY KEY ('billno'));
И теперь в проекте Java я хочу вставить некоторые данные в 5 полей, не принимая во внимание billno
, так как это столбец auto_increment. Я искал решение этого в Интернете, но не нашел ничего, что сработало бы в моем случае.
Вот как я узнал об этом:
String query = "insert into sales values(?, ?, ?, ?, ?)";
stmtDue = conn.prepareStatement(query);
stmtDue.setString(1, date);
stmtDue.setInt(2, itemCode);
stmtDue.setString(3, prodName);
stmtDue.setInt(4, quantity);
stmtDue.setInt(5, totalPrice);
int rowset = stmtDue.executeUpdate();
Этот подход был предложен форумом кодера. Поэтому, когда я запустил это сообщение, я получил сообщение об ошибке: Column count doesn't match value count at row 1
.
Я также пробовал:
String query = "insert into sales values(DEFAULT, ?, ?, ?, ?, ?)";
stmtDue = conn.prepareStatement(query);
stmtDue.setString(2, date);
stmtDue.setInt(3, itemCode);
stmtDue.setString(4, prodName);
stmtDue.setInt(5, quantity);
stmtDue.setInt(6, totalPrice);
Это все еще не сработало.
Пожалуйста, как я могу решить эту проблему?
Вы должны указать, в какие столбцы вы вставляете:
"insert into sales(columnname, columnname, columnname,columnname) values(?, ?, ?, ?)";
и оставьте колонку автоматического увеличения. Автоматический прирост будет автоматически увеличен.
Или вы можете пройти в нуле, как это:
"insert into sales(autoincrementcolumn, columnname, columnname,
columnname,columnname) values(0, ?, ?, ?, ?)";
Column count doesn't match value count at row 1