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
任何想法?
答案 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);
然后,您需要确定在插入过程中如何处理错误。