2013-05-13 13 views
0

내 sqlite-datase에 이상한 문제가 있습니다. 데이터를 삽입하고 표시 할 수는 있지만 삭제할 수는 없습니다 (특히 "같음"쿼리를 수행 할 때). 여기 SQLITE 데이터베이스에서 행을 삭제할 수 없습니다.

내 코드입니다 : 나는 40 (AND (40)와 ID가) 삭제됩니다 아래 WHERE id < 40 모든 데이터를 조회 ...하지만 WHERE id = 40 아무 일도 발생하지 내가 쿼리 할 때면 ...

<body> 

<div id="results"> 
    Results: 
</div> 

<button onclick="insert_id(); return false;">Insert</button> 
<button onclick="show_id(); return false;">Show</button> 
<button onclick="delete_id(); return false;">Delete</button> 

<script> 
var db = openDatabase("testdb", "1.0", "testdb favourites", 2*1024*1024); 

function insert_id(){ 
    db.transaction(
    function(t){ // This is the callback with "t" as the transaction object 
    t.executeSql("CREATE TABLE IF NOT EXISTS favourites (id TEXT PRIMARY KEY)"); 
    } 
); 

var rec_id = "40"; 

db.transaction(
    function(t){ 
    t.executeSql("INSERT INTO favourites VALUES (?)", [rec_id]); 
    } 
); 
} 

function show_id(){ 
var list = document.getElementById("results"); 
var rec_id = 0; 

db.transaction(
function(t){ 
    t.executeSql("SELECT id AS rec_id FROM favourites WHERE id > ?" ,[rec_id], function(t,r){ 
    for (var i=0; i < r.rows.length; i++){ 
     rec_id = r.rows.item(i).rec_id;   

     list.innerHTML +="<li>"+rec_id+"</li>";   
     } 
    }, 

    function(t,e){alert("Fehler: " + e.message + "\n\nBitte melde dich bei [email protected] wenn der Fehler öfters auftritt!");}) 
} 
); 
} 

function delete_id(){ 
var rec_id = 40; 

db.transaction(
function(t){ 
    t.executeSql("DELETE FROM favourites WHERE id = ?", [rec_id]); 
     } 
); 
} 
</script> 

</body> 

+0

로 만들 테이블을 변경보십시오'id' 열은'_id'로 참조 할 필요가 있는가? – MrCleanX

+0

흠 ... 왜해야합니까? –

답변

0

문제는 당신의 ID가 INT가 아닌 TEXT라고 생각합니다.

CREATE TABLE IF NOT EXISTS favourites (id INT PRIMARY KEY); 
+0

그래 맞았 어 :) 고마워. –

관련 문제