수색…


통사론

  • PREPARE stmt_name FROM preparable_stmt
  • EXECUTE stmt_name [USING @var_name [, @var_name] ...]
  • {DEALLOCATE | DROP} PREPARE stmt_name

PREPARE, EXECUTE 및 DEALLOCATE PREPARE 문

PREPARE 는 실행을위한 명령문을 준비합니다.

EXECUTE 는 prepared statement를 실행합니다.

DEALLOCATE PREPARE 는 준비된 성명서를 발표합니다.

SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
PREPARE stmt2 FROM @s;
SET @a = 6;
SET @b = 8;
EXECUTE stmt2 USING @a, @b;

결과:

+------------+
| hypotenuse |
+------------+
|         10 |
+------------+

마지막으로,

DEALLOCATE PREPARE stmt2;

노트:

  • FROM @s 대해 FROM @s 변수가 아닌 @variables를 사용해야합니다.
  • Prepare 등의 기본 용도는 바인딩이 작동하지 않는 상황 (예 : 테이블 이름 삽입)에 대한 쿼리를 '작성'하는 것입니다.

구성 및 실행

(이것은 CONCAT 사용하여 SELECT생성 하는 방법을 보여주는 좋은 예를 요구하고 나서 그것을 준비하고 실행하십시오. @variables 대 DECLAREd 변수의 사용을 강조하십시오 - 큰 차이를 만들어 내고 초심자 인 나 자신을 포함한다).

열 추가로 표 변경

SET v_column_definition := CONCAT(
  v_column_name
  ,' ',v_column_type
  ,' ',v_column_options 
);

SET @stmt := CONCAT('ALTER TABLE ADD COLUMN ', v_column_definition);

PREPARE stmt FROM @stmt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow