2016-04-11 28 views
1

benzersiz satırları ile INSERT yapmaya çalışıyorum, ancak, benzersiz satır zaten varsa, yalnızca ekleme yok sayıp hata döndürür .MySQL - Sütun zaten var: 1060 Yinelenen sütun adı '1'

Neden ve/veya sorguda neyin yanlış olduğu?

INSERT INTO hashtag_mapping (user_id, cid, hashtag_id, date_created, date_modified) 
SELECT * FROM (SELECT 1, 8923, 1, NOW(), CURRENT_TIMESTAMP) AS tmp 
WHERE NOT EXISTS (
    SELECT user_id, cid, hashtag_id 
    FROM hashtag_mapping 
    WHERE user_id = 1 
     AND cid  = 8923 
     AND hashtag_id = 1 
) LIMIT 1; 

eşsiz anahtar: unique_mapping (user_id, cid, hashtag_id), Unique

Ben MySQL aldığımız aşağıdaki hata:

Kolon zaten var: 1060 Yinelenen sütun adı '1'

Ve masa tasarımı, eğer yardımcı olursa ...

id user_id   cid hashtag_id date_created    date_modified 
------ ------- ---------- ---------- ------------------- --------------------- 
    1  1  8644   1 2016-03-23 15:19:54 2016-04-06 11:39:32 
    2  1  8644   2 2016-03-23 15:19:54 2016-04-06 11:39:34 
    3  1  8664   3 2016-03-25 17:02:32 2016-04-06 11:39:35 
    4  1  8664   4 2016-03-25 17:02:32 2016-04-06 11:39:36 

cevap

4

Sütunlar için bir takma ad vermelisiniz. Eğer MySQL yapmazsan Constant ismini alacak.

SELECT 1 AS field1 , 8923 AS something , 1 AS field2, NOW(), CURRENT_TIMESTAMP 
+0

Çok basit! Çok teşekkür ederim :] – tfont