mysql> CREATE PROCEDURE FILM_IN_STOCK(IN P_FILM_ID INT,IN P_STORE_ID INT , OUT P_FILM_COUNT INT)
    -> READS SQL DATA
    -> BEGIN
    ->          SELECT INVENTORY_ID
    ->          FROM INVENTORY
    ->          WHERE FILM_ID=P_FILM_ID
    ->          AND STORE_ID=P_STORE_ID
    ->          AND INVENTORY_IN_STOCK(INVENTORY_ID);
    ->
    -> SELECT FOUND_ROWS() INTO P_FILM_COUNT;
    -> END $$
Query OK, 0 rows affected (0.14 sec)

解决方案 »

  1.   

    READS SQL DATA
    读取此sql了
      

  2.   

    整个过程中所有的SQL语句仅需要读记录,不对记录进行写的操作。
      

  3.   

    CREATE PROCEDURE sp_name ([proc_parameter[,...]])
        [characteristic ...] routine_body
    characteristic:
        LANGUAGE SQL
      | [NOT] DETERMINISTIC
      | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
      | SQL SECURITY { DEFINER | INVOKER }
      | COMMENT 'string'
    READS SQL DATA表示子程序包含读数据的语句,但不包含写数据的语句。