SET 문

SET 문

SET 문은 현재 세션에 대해 param 설정value를 할당해요. 이렇게 서버 설정은 변경할 수 없어요. 또한 한 번의 쿼리로 지정된 설정 프로필의 모든 값을 설정할 수도 있어요.

출처: 문서

본문

SET param = value

valueparam 설정에 현재 세션에 대해 할당해요. 이렇게 서버 설정은 변경할 수 없어요. 또한 한 번의 쿼리로 지정된 설정 프로필의 모든 값을 설정할 수도 있어요.

SET profile = 'profile-name-from-the-settings-file'

true로 설정되는 불리언 설정의 경우, 값 할당을 생략하는 축약 구문을 사용할 수 있어요. 설정 이름만 지정하면 자동으로 1(true)로 설정돼요.

-- These are equivalent:
SET force_index_by_date = 1
SET force_index_by_date

SET TIME ZONE

SET TIME ZONE [=] 'timezone'

세션 시간대를 설정해요. 이것은 SET session_timezone = 'timezone'의 별칭이며, PostgreSQL 및 다른 SQL 데이터베이스와의 호환성을 위해 제공돼요. 많은 SQL 클라이언트, ORM, JDBC 드라이버가 연결 시 자동으로 SET TIME ZONE을 실행해요. 이 구문 덕분에 이런 도구들은 커스텀 우회 작업 없이 ClickHouse와 함께 동작할 수 있어요.

SET TIME ZONE 'UTC';
SET TIME ZONE 'Europe/Amsterdam';
SET TIME ZONE 'America/New_York';

-- Verify the current session time zone
SELECT getSetting('session_timezone');

시간대 값은 IANA Time Zone Database의 유효한 이름이어야 해요. 유효하지 않은 시간대 이름은 오류를 발생시켜요. session_timezone 설정에 대한 자세한 내용은 session_timezone을 참고해요.

Setting query parameters (쿼리 매개변수 설정)

SET 문은 매개변수 이름 앞에 param_ 접두사를 붙여 쿼리 매개변수를 정의하는 데에도 사용할 수 있어요. 쿼리 매개변수를 사용하면 실행 시점에 실제 값으로 대체되는 플레이스홀더가 있는 일반적인 쿼리를 작성할 수 있어요.

SET param_name = value

쿼리에서 쿼리 매개변수를 사용하려면 {name: datatype} 구문으로 참조해요.

SET param_id = 42;
SET param_name = 'John';

SELECT * FROM users
WHERE id = {id: UInt32}
AND name = {name: String};

쿼리 매개변수는 같은 쿼리를 서로 다른 값으로 여러 번 실행해야 할 때 특히 유용해요. 쿼리 매개변수에 대한 자세한 정보는 Identifier 타입과의 사용을 포함해 Defining and Using Query Parameters를 참고해요.

더 알아보기 (Learn more)