我想在更改列call_list_row
时复制表listid
中的行,但我只想复制行并更改listid
,如果没有其他行$new_list_id
1}}已经有一个特定candid
的行。
这是我必须复制行并更改listid
:
$sql= "INSERT INTO call_list_row (listid,candid,date,byuser,status,emailed)
SELECT '".$new_list_id."',candid,date,byuser,status,emailed
FROM call_list_row WHERE listid='".$list."'";
如何修改此设置,以便表格中没有与$new_list_id
具有相同candid
的新 public static Paint createPaint(int color, int strokeWidth, Style style) {
Paint paint = AndroidGraphicFactory.INSTANCE.createPaint();
paint.setColor(color);
paint.setStrokeWidth(strokeWidth);
paint.setStyle(style);
return paint;
}
的行?
答案 0 :(得分:2)
在复合键listid, candid
上创建唯一索引:
CREATE UNIQUE INDEX x_listid_candid ON call_list_row(listid, candid);
然后您可以使用INSERT IGNORE
,这样如果表格中已经包含该组合的行,则会跳过INSERT
而不会出错。
$sql= "INSERT IGNORE INTO call_list_row (listid,candid,date,byuser,status,emailed)
SELECT '".$new_list_id."',candid,date,byuser,status,emailed
FROM call_list_row WHERE listid='".$list."'";
如果您无法创建此索引(可能允许重复,但您不想在此过程中创建任何新的重复项),则可以签入查询。
$sql= "INSERT IGNORE INTO call_list_row (listid,candid,date,byuser,status,emailed)
SELECT '".$new_list_id."',candid,date,byuser,status,emailed
FROM call_list_row AS c1 WHERE listid='".$list."'
AND NOT EXISTS (
SELECT * FROM call_list_row AS c2
WHERE listid = '$new_list_id' AND c1.candid = c2.candid)";