将行插入包含预定义主键的mysql表

时间:2014-01-03 16:40:59

标签: mysql sql database

我一直在寻找这个问题的解决方案,并且找不到任何令人满意的东西。我知道类似的问题已被多次回答,但通常有解决方法,而不是标准的解决方案。

我的具体案例中的问题是:

我有一个包含预定义主键的表,不能用作自动增量。它是预定义的,它也被其他几个表用作外键。

NID - 我的主键

PID - 来自外部源的密钥

串行

BLA1

bla2

NID已经在表ids(目标表)中,而不在源表

PID已在源文件/表中,而不在目标表

其他列都在两个表中

对NID-PID将是唯一匹配,因为这些将在匹配后进一步使用。

现在我需要能够每周向这个表插入值,因为这些会在csv / excel文件中发送给我,数百条记录,所以一些简单的方法会是最好的,特别是因为简单方法很容易验证导入过程。

由于没有自动增量PK,我收到错误:

  

1062 - 密钥'NID'重复输入''

我正考虑在多个字段上创建唯一索引,例如:

CREATE UNIQUE INDEX unique_index ON ids (NID,PID);

但它也不能很好地运作:

  

1062 - 密钥'unique_index'重复输入'107521'

我还尝试使用要导入的数据创建单独的表,但是我得到了同样的错误。

问题是:在包含PK的表中插入记录并在不更改现有数据的情况下继续定期执行此操作的最佳方法是什么?我该怎么做才能实现这个目标?

自从我被困之后,我真的很感激任何帮助。

0 个答案:

没有答案