
--sql_mode의 옵션인 \'STRICT_ALL_TABLES\'와 \'ONLY_FULL_GROUP_BY\'는 두 가지 다른 기능을 제공합니다.
\'STRICT_ALL_TABLES\' 옵션은 MySQL이 테이블의 데이터를 더 엄격하게 검사하도록 합니다. 예를 들어, NULL 값을 NULL로 두고 INSERT 할 때, MySQL은 NULL 값을 NULL로 두지 않고, DEFAULT 값을 사용하거나 NULL을 허용하지 않는 열에 NULL 값을 INSERT 할 때 오류를 발생시킵니다. 이 옵션을 사용하면 데이터의 정확성을 높일 수 있습니다.
\'ONLY_FULL_GROUP_BY\' 옵션은 GROUP BY 절에 포함된 열을 SELECT 절에 포함할 때 오류를 발생시킵니다. 예를 들어, SELECT 열1, 열2 FROM 테이블 GROUP BY 열1; 이라는 쿼리를 실행할 때, 열2는 GROUP BY 절에 포함되지 않았기 때문에 오류를 발생시킵니다. 이 옵션을 사용하면 GROUP BY 절과 SELECT 절이 일관되게 작성되도록 합니다.
이 두 옵션은 서로 충돌하지 않습니다. \'STRICT_ALL_TABLES\' 옵션은 데이터의 정확성을 높이고, \'ONLY_FULL_GROUP_BY\' 옵션은 GROUP BY 절과 SELECT 절의 일관성을 높입니다. 따라서, 두 옵션을 모두 사용할 수 있습니다.
2025-06-22 09:48