#mysql #mysql-workbench
#mysql #mysql-workbench
Вопрос:
поэтому всякий раз, когда я запускаю запрос create, кажется, что где-то скрывается скрытый символ ‘?’, он добавляется прямо перед именем первого атрибута. При попытке получить доступ к этому атрибуту с / без ‘?’, я продолжаю получать сообщение об ошибке: столбец не найден в списке полей.
Я пробовал различные синтаксические сахара оператора create, один с `, один с ‘, с пробелом сразу после оператора create. В принципе, любая комбинация, которая существует, кажется, ничего не работает. Кроме того, пробовал перезагрузить сервер базы данных, не помогло.
create table IF NOT EXISTS temp(usercode varchar(20));
Комментарии:
1. Подождите… SQL Server или MySQL?
2. @TheImpaler MySQL, на самом деле это широко обсуждаемая ошибка. Я нашел этот поток bugs.mysql.com/bug.php?id=1478 но эти комментарии уходят далеко назад, я думаю, что может быть решение этого, о котором я не знаю.
3. «кажется, что где-то скрывается символ ‘?'» — Откуда вы знаете, что
?
где-то есть?!4. @JimmyB потому что я вижу это, когда запускаю desc temp; Моих баллов недостаточно, чтобы прикрепить изображение, иначе я бы это сделал. Под столбцом поля написано ?код пользователя.
Ответ №1:
Итак, мне удалось получить ответ самостоятельно. Когда в вашем приложении задействованы файловые операции, бывают случаи, когда к имени атрибута добавляется дополнительный символ ‘/ufeff’. Этот символ, по-видимому, не отображается в стандартных редакторах кода, хотя его можно увидеть в Sublime / Notepad . Таким образом, когда стало очевидно, что это проблема, я заменил имена столбцов в операторе create на:
column_name.replaceAll(«/ufeff», «»);
Это решило проблему, это, по-видимому, ошибка Microsoft Office и не имеет ничего общего с тем, как функционирует SQL.