如何在SQLite中使用和调用过程

时间:2012-05-25 08:10:04

标签: android database sqlite

这是示例程序。

DROP PROCEDURE IF EXISTS AddEdge; 
DELIMITER | 
CREATE PROCEDURE AddEdge(  
  pSourceName VARCHAR(20), pDestinationName VARCHAR(20), pValue INT  
) 
BEGIN 
  DECLARE vSourceID, vDestinationID, vEdgeID INT; 
  SET vSourceID = ( SELECT NodeID FROM nodes WHERE NodeName = pSourceName ); 
  IF vSourceID IS NULL THEN 
    BEGIN 
      INSERT INTO nodes (NodeName,Total) VALUES (pSourceName,0); 
      SET vSourceID = LAST_INSERT_ID(); 
    END; 
  END IF; 
  SET vDestinationID = ( SELECT NodeID FROM nodes WHERE NodeName = pDestinationName ); 
  IF vDestinationID IS NULL THEN 
    BEGIN 
      INSERT INTO nodes(NodeName, Total)  
      VALUES(pDestinationName,0); 
      SET vDestinationID = LAST_INSERT_ID(); 
    END; 
  END IF; 
  SET vEdgeID = ( SELECT EdgeID FROM edges  
                  WHERE sourceNodeID = vSourceID AND dID = vDestinationID  
                ); 
  IF vEdgeID IS NULL THEN 
    INSERT INTO edges(sourceNodeID,destinationNodeID,value)  
    VALUES(vSourceNodeID,vDestinationID,pValue); 
  ELSE 
    UPDATE edges SET value = pValue   
    WHERE sourceNodeID = vSourceID AND destinationNodeID = vDestinationID; 
  END IF; 
END;  
| 
DELIMITER 

如何在我的数据库中使用上面的程序在android中使用SQLite? 实际上我是新手来处理Android中的数据库,即在SQLite中。

感谢。

1 个答案:

答案 0 :(得分:1)

  

为了实现简单,SQLite不得不牺牲其他   有些人认为有用的特征,如高   并发,细粒度的访问控制,丰富的内置功能   函数,存储过程,深奥的SQL语言特性,XML   和/或Java扩展,tera-或peta-byte可伸缩性等等。 - sqlite.org


但在这里你可以找到一些解决方法:Adding Stored Procedures to SQLite