第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

主鍵輸入重復(fù)?

主鍵輸入重復(fù)?

侃侃無極 2023-11-01 21:49:01
我正在嘗試更新 JAVA 代碼上數(shù)據(jù)庫的值,但是當(dāng)我嘗試這樣做時(shí),它告訴我“主鍵的重復(fù)條目(nameOfSomething)”;即使 PK 不存在,也會給我這個(gè)錯誤,我不知道為什么。歡迎所有幫助;如果需要更多代碼,我很樂意添加它。提前致謝。/**SO THE NEW ERROR WOULD BE ON THE IF/ELSE STATEMENT, WHICH IS TRHOWING THE ELSE, THAT SAYS "DATA WAS NOT UPDATED".*/JButton btnUpdate = new JButton("Update");        btnUpdate.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                String petname = txtName.getText();                String petphoto = txtPhoto.getText();                String pettype = txtType.getText();                String color = txtColor.getText();                int gender = Integer.parseInt(txtGender.getText());                int isSterilized = Integer.parseInt(txtSterilized.getText());                //DATE                String pedigree = txtPedigree.getText();                DateFormat df = new SimpleDateFormat("yyyy-MM-dd");                String date_entry = df.format(datePicker.getDate());                //END                String vaccine1 = txtVaccine1.getText();                String vaccine2 = txtVaccine2.getText();                String vaccine3 = txtVaccine3.getText();                Connection conn = null;                PreparedStatement pstmt = null;                try {                    Class.forName("com.mysql.jdbc.Driver");                    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/refugio","root","2797");                    pstmt = conn.prepareStatement("UPDATE PETS SET PETPHOTO=?, PETTYPE=?, COLOR=?,GENDER=?,ISSTERILIZED=?,PEDIGREE=?,DATE_ENTRY=?,"                            + "VACCINE1=?,VACCINE2=?,VACCINE3=? WHERE PETNAME=?"); //NEW CHANGE HERE                }            }        });
查看完整描述

2 回答

?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊

您的sql語句缺少where子句,因此導(dǎo)致您的所有值pets都更新為相同的值,并且這些值之一看起來是違反主鍵約束的主鍵


嘗試將您的sql語句更改為


UPDATE PETS SET PETPHOTO=?, PETTYPE=?, COLOR=?,GENDER=?,ISSTERILIZED=?,PEDIGREE=?,DATE_ENTRY=?,VACCINE1=?,VACCINE2=?,VACCINE3=? WHERE PETNAME=?


這是假設(shè)是PETNAME主鍵嗎?否則,需要做更多工作才能獲取要更新的行的 ID


更新


最近更新 SQL 后,您必須調(diào)整準(zhǔn)備好的語句參數(shù)。PETNAME移至最后一個(gè)位置,因此應(yīng)為第 11 點(diǎn),其他位置應(yīng)相應(yīng)調(diào)整


pstmt.setString(11, petname);

pstmt.setString(1, petphoto);

pstmt.setString(2, pettype);

pstmt.setString(3, color);

pstmt.setInt(4, gender);

pstmt.setInt(5, isSterilized);

pstmt.setString(6, pedigree);

pstmt.setString(7, date_entry);

pstmt.setString(8, vaccine1);

pstmt.setString(9, vaccine2);

pstmt.setString(10, vaccine3);

如果您對查詢的更改略有不同,則可以使用命名參數(shù)而不是位置參數(shù),這樣,如果您更改了命名參數(shù)的位置,則無需重新調(diào)整位置:


例子:


"UPDATE PETS SET PETPHOTO=:PETPHOTO, PETTYPE=:PETTYPE"


pstmt.setString("PETPHOTO", petphoto);

pstmt.setString("PETTYPE", pettype);

ETC...


查看完整回答
反對 回復(fù) 2023-11-01
?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊

看起來您的更新查詢?nèi)鄙?where 條件。如果您在沒有 where 條件的情況下運(yùn)行更新腳本,則所有行的相同數(shù)據(jù)都會更新。



查看完整回答
反對 回復(fù) 2023-11-01
  • 2 回答
  • 0 關(guān)注
  • 147 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號