-1
我试图更新表:违反唯一约束?
create table Out_Patient(Patient_ID number(8) primary key ,
First_Name varchar2(20) ,
Last_Name varchar2(20) ,
Gender varchar2(10) ,
Mobile_Number number(12) ,
Address varchar2(20),
Date_Of_Birth Date ,
Date_Of_Entry Date)
与FOLL。代码:
PreparedStatement st= con.prepareStatement("Update Out_Patient Set Patient_ID=?,First_Name=?,Last_Name=?,Gender=?,Mobile_Number=?,Address=?,Date_Of_Birth=?,Date_Of_Entry=?");
String t1=text1.getText();
int id=Integer.parseInt(t1);
String t2=text2.getText();
String t3=text3.getText();
String t4=text4.getText();
String t5=text5.getText();
String t6=text_dob.getText();
String t7=text_doe.getText();
String s1=combo_gender.getSelectedItem().toString();
st.setInt(1,Integer.parseInt(t1));
st.setString(2,t2);
st.setString(3,t3);
st.setString(4,s1);
st.setString(5,t5);
st.setString(6,t4);
st.setString(7,t6);
st.setString(8,t7);
st.executeUpdate();
但我收到ORA-00001:违反了唯一性约束。 我知道Patient_ID是表中的主键,但在输入详细信息时,我保持与表中的相同。应该做出什么样的更改。 请帮助! 谢谢..
我甚至改为 String t1 = text1.getText(); int id = Integer.parseInt(t1); “更新Out_Patient Set First_Name = ?, Last_Name =?,Gender =?,Mobile_Number = ?, Address = ?, Date_Of_Birth =?,Date_Of_Entry =?其中Patient_ID = id” 然后我得到:无效的标识符ID – user3367768
这可能是因为你写了“哪里Patient_ID = id”,这个“id”标识符被视为一个值,而不是一个参数。试试这个:“Patient_ID =?”并在java代码中为此参数赋值st.setInt(9,Integer.parseInt(t1)); –
我包括where子句Patient_ID =? – user3367768