Mysql INSERT WHERE not exists语句插入两行,当它应该只插入一行时

时间:2015-03-05 19:40:15

标签: mysql

以下查询插入两行而不是1。

INSERT INTO table1 (not_primary_id, week_starting, commission)
SELECT '$not_primary_id', '$date', '$amount' 
FROM table1 
WHERE NOT EXISTS (SELECT id 
                  FROM table1
                  WHERE not_primary = '$not_primary_id' 
                   AND week_starting = '$date')

当我添加

LIMIT 1 

最后它会跳过一行ID。

在不跳过行ID

的情况下,这样做的正确方法是什么

感谢。

1 个答案:

答案 0 :(得分:0)

当您对第一个选择中的值进行硬编码时,为什么不直接插入它,并设计表格以使其不允许任何冗余数据。即直接使用

INSERT INTO table1 (not_primary_id, week_starting, commission)
VALUES ('not_primary_id', '2014-12-08', '0.6');

为您不想保留相同值的特定列提供独特的约束。

相关问题