Правильный синтаксис для облачного SQL 2nd GEN 5.7 IF Statement - PullRequest
1 голос
/ 30 октября 2019

Следующий оператор IF работает для меня в db-fiddle MySQL 5.7, но выдает ошибку в Cloud SQL 2nd GEN 5.7. Каков правильный синтаксис для Cloud SQL?

Оператор IF, выдающий ошибку:

IF col_name <> "UniqueId" AND col_name <> "ProjectId" THEN
 # DO STUFF
END IF;

Оператор IF в контексте:

the_loop: LOOP

    FETCH NEXT FROM col_names    
    INTO col_name; 

    IF done THEN
      CLOSE col_names;
      LEAVE the_loop;
    END IF;

IF col_name <> "UniqueId" AND col_name <> "ProjectId" THEN

 # DO STUFF

END IF;
END LOOP the_loop;

Сообщение об ошибке Cloud SQL:

" У вас есть ошибка в синтаксисе SQL; проверьте правильность синтаксиса в руководстве, соответствующем версии сервера MySQL. использовать рядом с ';> "UniqueId" И col_name <> "ProjectId" THEN SET concatFields "в строке 32 (строка 35, файл" dbConn ") "

Fiddle с рабочим примером:

https://www.db -fiddle.com / f / 7N3ehFpJcLp5suTb964fnQ / 39

1 Ответ

1 голос
/ 30 октября 2019

проверка Google Cloud SQL логические операторы, я не могу найти <> как логические не равны.

Вы можете попробовать использовать

IF col_name != "UniqueId" AND col_name != "ProjectId" THEN

или согласнодокумент (но этот не будет работать в MySQL)

IF !(col_name == "UniqueId") AND !(col_name == "ProjectId") THEN 
...