这是我其他问题link的继续。

我有一个这样的表结构:

id
assigned_by
assigned_to_user_id
vendor_id
receiver_no
purchase_order_no
destination
po_status
invoice_no
invoice_amount
delivery_date
datetime_done
latest_jda_sync_date
latest_mobile_sync_date
created_at
updated_at
deleted_at


我的csv文件的内容是这样的:

vendor_id receiver_no purchase_order_no destination po_status
30105   20110   10151   9005    3
50015   20114   10155   9005    3


我的问题是我有一个轮询/守护程序进程,该进程会提取数据并将其插入到csv文件中。因此,我确定每个csv都会获得重复数据。我想避免这种情况。

我读过使用IGNORE可以在插入数据之前进行此验证,但是我的问题是我的主键不是'id',并且要提取并存储在csv文件中的内容没有字段' ID”。

我的csv中的唯一字段是“ receiver_no”或“ purchase_order_no”。因此,如何将IGNORE命令设置为po_no或receiver_no。这可能吗?

谢谢,

最佳答案

在表中定义一个合适的UNIQUE键:

ALTER TABLE my_table ADD UNIQUE KEY (receiver_no)

在文件名后的IGNORE命令中添加REPLACE(保留现有数据)或LOAD DATA INFILE(删除记录并替换为新数据)。

10-05 21:02
查看更多