这是我另一个问题的延续。
我有一个这样的表结构:
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)
-
在
LOAD DATA INFILE
命令的文件名后添加IGNORE
(保留现有数据)或REPLACE
(删除记录并用新数据替换)。