programing

mySQL에서 테이블을 만들 때 변수를 사용하는 방법은 무엇입니까?

telebox 2023. 6. 26. 21:15
반응형

mySQL에서 테이블을 만들 때 변수를 사용하는 방법은 무엇입니까?

ENUM을 선언하고 테이블 작성에 사용하려고 합니다.내 코드는 다음과 같습니다.

SET @myEnum= ENUM('fulfilled', 'noshow', 'cancelled');
CREATE TABLE `Appointments` (
    `AppointmentID` VARCHAR(36) NOT NULL UNIQUE,
    `AppointmentFulfilled` @myEnum
);

그러나 MariaDB에서 오류가 발생했습니다. '@myEnum은 이 위치에서 유효하지 않습니다. BIGINT가 예상됩니다..'

아이디어 있어요?

CREATE TABLE 문을 구문 분석할 때 SQL 구문 및 식별자를 수정해야 합니다.따라서 변수나 모수를 사용할 수 없습니다.

문자열을 생성하고 변수를 보간한 다음 해당 문자열을 동적 SQL로 준비 및 실행할 수 있습니다.

SET @myEnum= 'ENUM(''fulfilled'', ''noshow'', ''cancelled'')';

SET @ddl = CONCAT(
  'CREATE TABLE `Appointments` (
    `AppointmentID` VARCHAR(36) NOT NULL UNIQUE,
    `AppointmentFulfilled` ', @myEnum,
  ')'
);

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

언급URL : https://stackoverflow.com/questions/71914876/how-to-use-a-variable-when-creating-a-table-in-mysql

반응형