Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:'प्राथमिक' कुंजी के लिए डुप्लिकेट प्रविष्टि ''

आपको remove चिल्लाना चाहिए ; आपकी sql क्वेरी में:

गलत क्वेरी:

prepareStatement("create table staff (staffname varchar(30) primary key);");

preparedStatement = connect.prepareStatement("insert into staff values(?);");

सही क्वेरी है:

prepareStatement("create table staff (staffname varchar(30) primary key)");

preparedStatement = connect.prepareStatement("insert into staff values(?)");

अपनी सम्मिलित क्वेरी की जांच करें

और, मुझे लगता है कि आपका INSERT डीबी में मान, वह क्वेरी बहुत गलत है, टेबलनाम . का उल्लेख किया था केवल, आपको कॉलमनाम . का उल्लेख नहीं करना चाहिए . इसलिए आपको अपनी क्वेरी के साथ टेबलनाम जोड़ना चाहिए।

गलत क्वेरी:

insert into staff values(?)

सही क्वेरी:

    INSERT INTO table_name
    VALUES (value1,value2,value3,...);

इस लिंक को देखें:

http://www.w3schools.com/sql/sql_insert.asp

अद्यतन करें:1

गलत कोड:

statement = connect.createStatement();
preparedStatement = connect
                .prepareStatement("SELECT count(*)FROM information_schema.tables\n"
                        + "WHERE table_schema = 'project' AND table_name = 'staff'");
        rs = preparedStatement.executeQuery();
        rs.next();

आपको इस तरह बदलना चाहिए:नमूना

Class.forName(driverName).newInstance();
con=DriverManager.getConnection(connectionUrl+dbName,user,password);
st = con.createStatement();
String sql="SELECT * FROM employees";
rs=st.executeQuery(sql);

नोट:

  1. आपको sql क्वेरी को कॉल नहीं करना चाहिए।
  2. और, आप preparedStatement . का उपयोग कर रहे हैं कॉल करने के लिए, आपको statement . का अनुसरण करना चाहिए
  3. preparedStatement हल नहीं किया जा सकता है।

पसंद करें,

string sql=....sql query...;
statement.executeQuery(sql) 

अद्यतन:2:-->नमूना

public class User 
{
private String empname;
public String getEmpName()
{
    return empname;
}
public void setEmpName(String empname)
{
    this.empname=empname;
}
public void addUser(User user)
{
    try
    {
        PreparedStatement ps;
        ps=connection.prepareStatement("INSERT INTO employee (empname,empaddress,depname) VALUES (?,?,?)");
        ps.setString(1, user.getEmpName());
        ps.setString(2, user.getEmpAddress());
        ps.setString(3, user.getDepName());
        ps.executeUpdate();
    }
    catch(Exception e)
    {
        System.out.println(e);
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ऑर्डर एक नंबर से, खाली स्ट्रिंग्स (या 0 की) अंतिम

  2. EXPLAIN योजना के आधार पर MySQL प्रश्नों का अनुकूलन कैसे करें

  3. MySQL रिकॉर्ड नहीं हटा रहा है

  4. MySQL में टेक्स्ट कॉलम में स्ट्रिंग खोजें

  5. एक पंक्ति और उसके चारों ओर पंक्तियों का चयन करें