2015-03-13 5 views
9

मैं सिर्फ एक अजीब त्रुटि हो रही है:SQLite IntegrityError: अद्वितीय बाधा विफल रहा:

IntegrityError: UNIQUE constraint failed: jumptimes.player_id, jumptimes.map_id, jumptimes.runID 

मेरे SQL क्वेरी:

t = (playerid, mapid, timeTaken, (time() if not dateOverwrite else dateOverwrite), runID, runLeaveZoneVelocity, EnterZoneVelocity, averageVelocity, time()) 
log("PlayerID: %s | mapid: %s | timeTaken: %s | Date: %s | runID: %s | rlvz: %s | ezv: %s | avgvel: %s | firstFinish: %s" % t) 
execute("INSERT INTO jumptimes (player_id, map_id, duration, date, runID, LeaveZoneVelocity, enterZoneVelocity, averageVelocity, firstFinish) VALUES (?,?,?,?,?,?,?,?,?)", t) 

लॉग उत्पादन:

17:45:11 - PlayerID: 13 | mapid: 34 | timeTaken: 55.2569999695 | Date: 1426265111.18 | runID: 0 | rlvz: 315.484661963 | ezv: 1159.06484472 | avgvel: 1374.49441131 | firstFinish: 1426265111.18 

मेरे डेटाबेस संरचना:

CREATE TABLE IF NOT EXISTS jumptimes (
    id INTEGER PRIMARY KEY AUTO_INCREMENT, 
    player_id INTEGER REFERENCES players ON DELETE CASCADE, 
    map_id INTEGER REFERENCES maps ON DELETE CASCADE, 
    duration REAL, 
    `date` REAL, 
    runID INTEGER, 
    leaveZoneVelocity INTEGER DEFAULT 0, 
    enterZoneVelocity INTEGER DEFAULT 0, 
    averageVelocity INTEGER DEFAULT 0, 
    server INTEGER DEFAULT 0, 
    firstFinish REAL, 
    completions INTEGER DEFAULT 1, 
    UNIQUE (player_id, map_id, runID) 
) 

विषय कहते हैं, im हमेशा SQLite IntegrityError: UNIQUE constraint failed:

उत्तर

14

हो रही अपनी मेज की घोषणा की UNIQUE खंड कहा गया है कि player_id, map_id, और runID के हर पंक्ति के संयोजन अद्वितीय होना चाहिए। आपको यह त्रुटि मिल रही है क्योंकि jumptimes तालिका में player_id = 13, map_id = 34, और runID = 0 के साथ पहले से ही एक पंक्ति है।

Here is a simple SQLFiddle त्रुटि को पुन: उत्पन्न करना। "बाधा" त्रुटि के बारे में बात कर रही है अद्वितीय खंड है, और यदि आप पूरी त्रुटि देख सकते हैं, तो यह वही होगा जैसा आप प्राप्त कर रहे हैं।

संबंधित मुद्दे