поэтому всякий раз, когда я запускаю запрос на создание, кажется, что есть скрытый '?' притаившийся откуда-то символ, он добавляется прямо перед именем первого атрибута. При попытке доступа к этому атрибуту с/без '?' я продолжаю получать сообщение об ошибке: столбец не найден в списке полей.
Я пробовал различные синтаксические сахара оператора create, один с `, один с ', с пробелом сразу после оператора create. В принципе, любая комбинация, кажется, ничего не работает. Также пробовал перезагружать сервер базы данных, не помогло.
create table IF NOT EXISTS temp(usercode varchar(20));
@TheImpaler MySQL, на самом деле это широко обсуждаемая ошибка. Я нашел эту ветку bugs.mysql.com/bug.php?id=1478, но эти комментарии уходят далеко назад, я думаю, что может быть решение, о котором я не знаю.
«кажется, есть скрытый '?' где-то рядом прячется персонаж" - Откуда вы знаете, что где-то есть ??!
@JimmyB, потому что я вижу это, когда запускаю desc temp; Моих баллов недостаточно, чтобы прикрепить изображение, иначе я бы это сделал. Под столбцом поля написано «код пользователя».






Так что мне удалось получить ответ самостоятельно. Когда в вашем приложении задействованы файловые операции, бывают случаи, когда к имени атрибута добавляется лишний символ '/ufeff'. Этот символ, по-видимому, не виден в стандартных редакторах кода, хотя его можно увидеть в Sublime/Notepad++. Таким образом, когда стало очевидно, что проблема именно в этом, я заменил имена столбцов в операторе создания на:
имя_столбца.replaceAll("/ufeff", "");
Это решило проблему, это, по-видимому, ошибка Microsoft Office и не имеет ничего общего с тем, как работает SQL.
Подождите... SQL Server или MySQL?