programing

로컬 호스트와 원격 호스트의 VS 코드에 SQL 구문 오류가 있음

oldcodes 2023. 9. 21. 21:13
반응형

로컬 호스트와 원격 호스트의 VS 코드에 SQL 구문 오류가 있음

원격 서버에 존재하는 기존 데이터베이스에 대한 MariaDB 데이터베이스에 대한 init 파일을 작성하기 위해 앱을 컨테이너화하려고 합니다.VS Code를 사용하여 원격 서버에 연결하고 있는데 덤프의 내용이 포함된 .sql 파일은 오류가 없지만 로컬 컴퓨터의 다른 작업 공간에 복사하려고 하면 구문 오류가 많이 발생합니다.

구문 오류의 예:

DROP TABLE IF EXISTS `accounts`;
CREATE TABLE `accounts` (
  `table_number` int(11) NOT NULL AUTO_INCREMENT, 
  `account_id` varchar(12) NOT NULL, 
  `account_name` varchar(5) NOT NULL,
  PRIMARY KEY (`table_number`)
) ENGINE=InnoDB AUTO_INCREMENT=261 DEFAULT CHARSET=latin1; 
Incorrect syntax near '`'. Expecting '(', or SELECT. 

Incorrect syntax near '11'. Expecting '(', or SELECT.

' 문자에 대한 오류는 "accounts" 이전과 "table_number" 두 인스턴스 모두 이전에 있지만 "account_id" 및 "account_name" 이전에는 없습니다.CREATE의 모든 숫자에는 잘못된 구문 경고가 있습니다.이런 문제에 책임이 있는 숨겨진 인물이 있는지 복사해서 붙이기보다는 다시 타이핑을 해봤지만, 운이 없었습니다.

OS 문제입니까?원격 서버가 센트입니다.OS 기기이고 제 지역은 macOS catalina 입니다.VS Code에서 지정하거나 변경해야 하는 설정?

백틱을 모두 제거하면 검증 오류가 사라집니다.

문제는 VS가 MS SQL 구문을 기대하고 있다는 것입니다.

MySQL에서 백틱은 공백이나 예약된 단어와 같은 우스꽝스러운 것을 포함할 수 있는 이름을 구분하는 데 사용됩니다.그런 갈등이 없다면 뒷목을 모두 제거할 수 있습니다.일반적으로 스키마를 덤프할 때 내보내기 도구가 기본적으로 포함되어 있지만, 이러한 고통을 줄이기 위해 스키마를 억제하도록 구성할 수도 있습니다.

하지만 백틱이 유일한 차이점은 아니므로 다른 비호환성 플래그가 표시될 수도 있습니다(예: 이와 같은 오류가 표시됨).REPLACE INTO그리고.NOW()).

VS에게 "이것은 mysql!"이라고 말하는 방법을 찾고 있지만 아직 찾지 못했습니다.

언급URL : https://stackoverflow.com/questions/64268052/sql-syntax-errors-in-vs-code-in-local-vs-remote-host

반응형