programing

ID가 예약어가 아니거나 공백이 있는 경우 BACKTICS를 사용해야 하는 이유는 무엇입니까?

nicescript 2023. 2. 2. 21:42
반응형

ID가 예약어가 아니거나 공백이 있는 경우 BACKTICS를 사용해야 하는 이유는 무엇입니까?

백틱에 에러는 없다.

DB [XXX]> create temporary table `123456e6` (`id` char (8));
Query OK, 0 rows affected (0.03 sec)

백틱을 사용하지 않을 때 오류 발생.

DB [XXX]> create temporary table 123451e6 (`id` char (8));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '123451e6 (`id` char (8))' at line 1

제 식별자 123451e6은 여기 페이지와 같이 유효하며 예약어 또는 공백이 있거나 특수문자가 포함되어 있지 않습니다.

"숫자만" 규칙의 미묘한 케이스가 발생했습니다.

식별자는 숫자로 시작할 수 있지만 따옴표가 없는 한 숫자로만 구성되지 않을 수 있습니다.

e문자는 숫자의 과학적 표기법에 사용되며 MySQL은 123451e6을 "123451 * 106" 또는 123451000000으로 해석합니다."e" 이외의 문자는 문자열이 "not digits only" 규칙을 준수하며 따옴표 없이 사용할 수 있습니다.예:

MariaDB [db]> create temporary table 123451f6 (`id` char (8));
Query OK, 0 rows affected (0.02 sec)

그것은 유효하지 않다 왜냐하면 어떤 형태로든12345e6는 수치(특히 이 예에서는 12345*106)로 평가됩니다.따라서 명시적으로 문자열로 표시해야 합니다.

언급URL : https://stackoverflow.com/questions/41907836/why-do-i-have-to-use-backticks-when-identifier-is-not-a-reserved-word-or-with-sp

반응형