노는게 제일 좋습니다.

Mysql 이름 맨뒤에 특수문자가 들어간 테이블 선택하기 본문

그 외

Mysql 이름 맨뒤에 특수문자가 들어간 테이블 선택하기

노는게 제일 좋습니다. 2020. 10. 1. 16:55

문제상황

mysql> show tables;
+--------------------+
| Tables_in_nodebird |
+--------------------+
| Follow             |
| PostHashtag        |
| hashtags           |
| posts              |              |
| users,             |
+--------------------+
5 rows in set (0.00 sec)

실수로 테이블 이름에 ,(콤마)를 붙여서 생성해버렸다

선택도 안되고
mysql> SELECT * FROM users,;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

드랍도 안되고
mysql> DROP TABLE users,
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

mysql> DROP TABLE users,;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

나보고 어쩌라고

users, 를 지우고 users를 새로 만들거나

또는 users,의 이름을 users로 바꾸고 싶은데, 둘 다 안해준다.

 

해결

테이블 이름을 ` ` 백쿼트로 감싸면 된다.

mysql> ALTER TABLE `users,` RENAME users;
Query OK, 0 rows affected (0.40 sec)

mysql> show tables;
+--------------------+
| Tables_in_nodebird |
+--------------------+
| Follow             |
| PostHashtag        |
| hashtags           |
| posts              |
| users              |
+--------------------+
5 rows in set (0.00 sec)
Comments