2

这是示例程序。

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 中的数据库。

谢谢。

4

1 回答 1

1

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


但是在这里您可以找到一些解决方法:向 SQLite 添加存储过程

于 2012-05-25T09:09:33.053 回答