MySQL存储函数:CONTAINS SQL还是NO SQL?

4

以下存储函数中,正确的标志是:CONTAINS SQL还是NO SQL?

CREATE FUNCTION BigIntHash(str VARCHAR(255)) RETURNS BIGINT UNSIGNED DETERMINISTIC
RETURN CONV(SUBSTRING(CAST(SHA(str) AS CHAR), 1, 15), 16, 10)

并且

CREATE FUNCTION upi(a VARCHAR(14), b INT(8) UNSIGNED, c VARCHAR(13)) RETURNS BIGINT UNSIGNED DETERMINISTIC
RETURN IF(a IS NULL, 
  IF(b IS NULL, 
    IF(c IS NULL, 
      NULL, 
      BigIntHash(CONCAT("a-", a))
    ), 
    BigIntHash(CONCAT("b-", b))
  ), 
  BigIntHash(CONCAT("c-", c))
)

定义在http://dev.mysql.com/doc/refman/5.1/en/create-procedure.html上,但我仍不确定:
  • CONTAINS SQL表示该程序不包含读取或写入数据的语句。如果没有显式给出这些特性,则默认为此选项。例如:SET @x = 1或DO RELEASE_LOCK('abc')等执行语句,但既不读取也不写入数据。

  • NO SQL表示该程序不包含SQL语句。

1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接