programing

MySQL 구문:이게 뭐야?

jooyons 2023. 7. 29. 08:23
반응형

MySQL 구문:이게 뭐야?

내보낸 SQL 파일에는 다음 행이 포함되어 있습니다.

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

이 선들은 무엇을 의미합니까?CREATE TABLE그리고.INSERT INTO?

변수 할당입니다.할당은 MySQL이 사용될 때 실행되고 다른 RDBMS가 사용될 때는 그대로 유지되는 방식으로 실행 가능한 주석으로 포장됩니다.또한 40101은 주석을 데이터베이스에 유지하지 않음을 나타냅니다. 즉, 행이 실행되는 경우 SQL 파일이 실행될 때만 주석이 실행됩니다.

https://dev.mysql.com/doc/refman/8.0/en/comments.html 문서를 확인한 후, 그 특별한 논평은 항상 저를 혼란스럽게 합니다.

! 문자 뒤에 버전 번호를 추가하면 MySQL 버전이 지정된 버전 번호보다 크거나 같은 경우에만 주석 내 구문이 실행됩니다.KEY_다음 설명의 LOCK_SIZE 키워드는 MySQL 5.1.10 이상의 서버에서만 실행됩니다.

CREATE TABLE t1(INT, KEY(a)) /*!50110 KEY_BLOCK_SIZE=표시 */;

그것은 이해하기 어렵지 않습니다.50110으로 환산하면, 5(주요)01(수정)10(수정) = MySQL 버전 >= 5.1.10 이상에서 실행을 의미합니다.

이것은 조건부 주석으로 묶인 변수 할당입니다.해당 MySQL 버전에 따라 코드가 실행됩니다. 주석 참조

이 선들은 댓글입니다.SQL 주석을 시작할 수 있는 시간:--줄의 끝까지 또는 에 의해 둘러싸일 수 있습니다./* ... */

라인은 당신이 내보낸 sql 파일의 파일 인코딩과 관련이 있다고 생각합니다.

언급URL : https://stackoverflow.com/questions/6265891/mysql-syntax-what-is-this

반응형