실제로 MySQL은 저장 프로시저가 생성되었을 때의 환경을 유지합니다. 이는 두 개의 막대를 사용하여 문자열을 연결하는 다음 예제를 통해 이해할 수 있습니다. 이는 SQL 모드가 ANSI인 경우에만 유효합니다. 그러나 SQL 모드를 non-ansi로 변경하면 프로세스는 원래 설정이 여전히 true인 것처럼 작동합니다.
mysql> Set sql_mode = 'ansi'// Query OK, 0 rows affected, 1 warning (0.14 sec) mysql> Create Procedure Con_string() -> SELECT 'a'||'b'// Query OK, 0 rows affected (0.12 sec) mysql> Call Con_string (); +----------+ | 'a'||'b' | +----------+ | ab | +----------+ 1 row in set (0.05 sec) Query OK, 0 rows affected (0.05 sec) mysql> Set sql_mode = ''; Query OK, 0 rows affected (0.00 sec) mysql> Call Con_string(); +----------+ | 'a'||'b' | +----------+ | ab | +----------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.00 sec)
위의 결과 집합은 SQL 모드를 non-ansi로 변경한 후에도 Con_string() 프로시저가 마치 SQL 모드가 여전히 ansi인 것처럼 동일한 결과를 생성한다는 것을 보여줍니다. 그러나 새 프로그램은 SQL 모드를 non-ansi로 변경했기 때문에 두 막대를 모두 허용하지 않습니다.
rreee위 내용은 MySQL은 저장 프로시저가 생성되는 환경을 유지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!