Аврора MySQL 5.7 вставить в сбой - PullRequest
0 голосов
/ 05 октября 2018

Не могу понять это.Я пришел из мира SQL Server, но ожидал, что это сработает так же.

insert into active_directory (ad_account,email,distinguished_name,employee_id,manager_distinguished_name,display_name,terminated)
select
    ad_account,
    email,
    distinguished_name,
    employee_id,
    manager_distinguished_name,
    display_name,
    case when distinguished_name like '%Terminations%' then 1 else 0 end as terminated
from
    active_directory_staging

завершится с ошибкой:

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 'terminated)
select
    ad_account,
    email,
    distinguished_name,
    employee_id,
    mana' at line 1

, если я удалю столбец terminated из вставки/ выберите запрос, он работает нормально.Добавьте его обратно, и он потерпит неудачу.

Если я запускаю только выделенную часть (как с оператором case, так и без него, для завершенного столбца), он работает нормально.

Возможно, я просто упускаю что-то базовоездесь ... любая помощь приветствуется.

active_directory оператор создания таблицы

CREATE TABLE `active_directory` (
  `ad_account` varchar(100) COLLATE latin1_general_ci DEFAULT NULL,
  `display_name` varchar(100) COLLATE latin1_general_ci DEFAULT NULL,
  `email` varchar(100) COLLATE latin1_general_ci DEFAULT NULL,
  `distinguished_name` varchar(200) COLLATE latin1_general_ci DEFAULT NULL,
  `employee_id` varchar(100) COLLATE latin1_general_ci DEFAULT NULL,
  `manager_distinguished_name` varchar(200) COLLATE latin1_general_ci DEFAULT NULL,
  `terminated` bit(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

1 Ответ

0 голосов
/ 05 октября 2018

В MySQL есть несколько зарезервированных слов, которые нельзя использовать в качестве имен столбцов / псевдонимов.

К сожалению, для этого запроса terminated является одним из таких слов.

Выдержка из https://dev.mysql.com/doc/refman/5.7/en/keywords.html:

  • ...
  • ВРЕМЕННЫЙ
  • УМЕНЬШЕННЫЙ
  • ПРЕКРАЩЕН (R)
  • ТЕКСТ
  • THAN
  • ...
...