Mysql从另一个表中插入多个id

时间:2013-12-20 17:26:58

标签: mysql

我有2张桌子, 首先我检索所有这样的ID:

select DISTINCT entity_id From table1

我想使用entity_id创建批量插入,如果entity_id在colomn2中具有特定值,则阻止重复:

例如

    *********************************************
    *  ID   *  ENTITY_ID *  COLOMN2 *  value    *
    *********************************************
    *  1    *     230    *    20    *    1      *
    *  2    *     230    *   100    *    1      *
    *  3    *     280    *    20    *    0      *
    *  4    *     220    *    20    *    1      *
    *********************************************
    select DISTINCT entity_id From table1 // return : 230,280,220


    INSERT into table1 ('ENTITY_ID','COLOMN2','VALUE') VALUES([the select id],100,1) 
    WHERE COLOMN2<>100

或类似的东西?

结果需要:

创建2个插入... entity_id = 220和entity_id = 280

使用colomn2 = 100且值= 1

任何想法?

2 个答案:

答案 0 :(得分:1)

使用子查询

INSERT INTO table1 ('ENTITY_ID','COLOMN2','VALUE')
(select DISTINCT entity_id ,100,1 FROM table2 WHERE column2<>100) 

答案 1 :(得分:0)

如果我理解正确,你认为“复制”是指“ENTITY_ID”和“COLOMN2”具有相同的值,即:

(50,50)&amp; (50,99)==不重复

(80,42)&amp; (99,42)==不重复

(55,66)&amp; (55,66)==重复

您可以在数据库中创建复合唯一键吗?比如,对于mysql:

CREATE UNIQUE INDEX nodupes ON table1 (ENTITY_ID, COLOMN2);

然后,您需要确定在插入过程中如何处理错误。