2016-04-11 12 views
1

Ich habe versucht, eine INSERT mit eindeutigen Zeilen zu machen, aber wenn die eindeutige Zeile bereits existiert, ignoriert sie einfach die Einfügung und gibt keinen Fehler zurück .MySQL - Spalte existiert bereits: 1060 Doppelter Spaltenname '1'

Warum und/oder was wäre falsch mit der Abfrage?

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; 

Der eindeutige Schlüssel: unique_mapping (user_id, cid, hashtag_id), Unique

Der folgende Fehler, die ich von MySQL erhalten:

Spalte bereits vorhanden ist: 1060 Doppelte Spaltenname '1'

Und die Tischdesign, wenn es hilft ...

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 

Antwort

4

Sie müssen für die Spalten einen Aliasnamen angeben. Wenn Sie nicht MySQL nehmen die Konstante als Name.

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

So einfach! Vielen Dank :] – tfont

Verwandte Themen