2013-08-10 2 views
0

У меня есть таблица базы данных, основной ключ является автоматическим приращением значенияПроблемы с AUTO_INCREMENT поля в заявлении вставки

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

это мой стол:

CREATE TABLE IF NOT EXISTS 
Users(lastName CHAR(50) NOT NULL, 
userID MEDIUMINT NOT NULL AUTO_INCREMENT, 
phone CHAR(15), 
email CHAR(50), 
address CHAR(100), 
authLevel INT NOT NULL DEFAULT 0, 
FOREIGN KEY(authLevel) REFERENCES Authorizations (authLevel), 
login CHAR(30) NOT NULL UNIQUE, 
firstName CHAR(50) NOT NULL, 
PRIMARY KEY (userID),password CHAR(30) NOT NULL); 

это моя вставка заявление:

(firstName,lastName,login,password,address,email) VALUES(?,?,?,?,?,?) 

и это исключение я получаю:

java.sql.SQLException: Field 'userID' doesn't have a default value 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052) 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503) 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664) 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2815) 
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155) 
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458) 
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375) 
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359) 
    at com.database.Main.main(Main.java:15) 
+0

Ответ принят, но позвольте мне спросить, вы используете 'PreparedStatement'? – Azad

+0

есть. , и это должно сделать ответ длиннее –

+0

Вы пробовали 'подготовленныйStatement.setString (1," firstName ");' .....? – Azad

ответ

1

Я удивлен, что он не работает, как есть, но передавая нуль или 0 в качестве значения идентификатора пользователя должно заставить его работать.

+0

мне было странно, так как я использовал его на других платформах и вообще не получал никакого значения, обычно это трюк, это первый раз, когда я увидел это в java ... благодаря! –

0

Я столкнулся с той же проблемой. Я решил проблему, добавив DEFAULT 0 в определение с автоматическим добавлением столбцов.

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