仅插入具有复合主键列的表

时间:2016-03-30 20:09:46

标签: mysql sql mysql-python

我尝试像这样运行一个insert语句(通过MySQLdb-python):

insert into LinkTable1ToTable2 (site_id, customer_id) values ('xyz-c1', '123');

仅出现以下错误:

Error Code: 1062. Duplicate entry 'xyz-c1-123' for key 'PRIMARY'

它是一个链接表(中间表),它链接另外两个具有多对多关系的表。该表由两列组成,形成一个复合主键,如下所示:

    site_id | customer_id
   ---------------------
    xyz-a1  | 121
    xyz-b1  | 122

表架构是:

 Field,        Type,        Null,     Key,    Default,    Extra
'site_id',     'char(40)',  'NO',    'PRI',    '',        ''
'customer_id',  'int(11)',   'NO',    'PRI',    '0',       ''

在互联网和堆栈溢出上搜索了几个小时之后,我唯一想到的就是一些脆弱的东西:

insert ignore into LinkTable1ToTable2 (site_id, customer_id) values ('xyz-c1', '123')
ON DUPLICATE KEY UPDATE site_id=values(site_id), customer_id=values(customer_id);

仅返回:

0 row(s) affected

我觉得有点迷失......

我需要一个insert语句,将一对site_id和customer_id插入到表中(请参阅问题开头的语句)。

有人可以帮忙吗?

0 个答案:

没有答案