当表空时,我在表上使用了insert查询,它执行完美并插入数据,当我使用相同值的相同插入查询时,弹出错误
我收到错误
var insert_query= Alloy.Globals.database_file.execute('INSERT INTO get_appointments (appointment_number,end_date_time,location,start_date_time) VALUES (?,?,?,?)', app_number, app_end_time,app_loc, app_start_time);
[ERROR] : Script Error {
[ERROR] : backtrace = "#0 () at :0";
[ERROR] : line = 127;
[ERROR] : message = "Error occurred calling next on a PLSqliteResultSet. SQLite error: 'column appointment_number is not unique' for 'INSERT INTO get_appointments (appointment_number,end_date_time,location,start_date_time) VALUES (?,?,?,?)'";
[ERROR] : sourceId = 299620896;
[ERROR] : sourceURL = "file:///Users/obaid_infrability/Library/Application%20Support/iPhone%20Simulator/7.1/Applications/F58D6E16-22D1-4C45-A800-7DE57DA00DDA/Qima%20App.app/app.js";
[ERROR] : }
出现此错误的原因是 appointment_number设置为唯一但我不明白为什么它会弹出错误,如果该值已经存在,它应该跳过它。
我必须做些什么来跳过错误?
答案 0 :(得分:1)
您有几种方法可以解决此问题,您应该为您的应用选择最佳解决方案
答案 1 :(得分:0)
如果您将列设置为唯一,则如果该值已存在,则不会保留该列。因为,它类似于主键。 唯一 和 主键 之间的唯一区别是主键只能设置为表中的一列而unique可以设置为表格中的多个列。
如果要添加值,即使它已经存在,也要删除该列的唯一约束。