Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Еще раз об ошибке ERROR 1067 (42000) / 9 сообщений из 9, страница 1 из 1
30.07.2018, 09:30
    #39680857
S_Gur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз об ошибке ERROR 1067 (42000)
При создании таблицы следующим запросом:

Create Table If Not Exists `tbSettingsLog`
(`biID` BigInt UnSigned Not Null Primary Key Auto_Increment Comment 'Уникальный идентификатор',
`biIDMain` BigInt UnSigned Not Null Comment 'Идентификатор записи в основной таблице',
`bIsDeletableDefault` Boolean Default 0 Not Null,
`tiCurrentMW` TinyInt Default 0 Not Null Comment 'Текущий портал',
`biChangerID` BigInt Default 0 Not Null Comment 'Идентификатор пользователя, выполнившего изменение',
`vcNetName` VarChar(1000) Default '…' Not Null Comment 'Откуда производилось изменение',
`dtDateBegin` DateTime Not Null Comment 'Начало действия изменений',
`dtDateEnd` DateTime Default '2500-01-01 00:00:00' Not Null Comment 'Окончание действия изменений',
`tiEditMode` TinyInt Unsigned Default 0 Not Null Comment 'Вид изменений: 0 - создание; 1 - изменение; 2 - удаление; 3 - восстановление') ENGINE=InnoDB Default CharSet=utf8 Comment='Лог конфигурации системы';

получаю сообщение:

ERROR 1067 (42000) at line 37: Invalid default value for 'vcNetName'

Основная странность ситуации в том, что у меня создается больше десятка подобных таблиц-логов, в которых присутствуют поля от `biChangerID` до `tiEditMode`. Этот кусок я просто копирую в каждую новую таблицу. Ошибка возникает только в этой. Кто-нибудь может что-то посоветовать?
...
Рейтинг: 0 / 0
30.07.2018, 09:47
    #39680872
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз об ошибке ERROR 1067 (42000)
К самому скрипту претензий нет. Единственное зримое место, которое может вызывать эту проблему - использование символа троеточия, который может "не вписываться" в текущие charset/collation.
...
Рейтинг: 0 / 0
30.07.2018, 09:53
    #39680879
S_Gur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз об ошибке ERROR 1067 (42000)
Akina, это я понимаю. Но у меня еще больше десятка идентичных скриптов с именно таким описанием поля `vcNetName` и еще куча других варчаровских полей с подобным значением по умолчанию. Ошибка возникает именно на этой таблице
...
Рейтинг: 0 / 0
30.07.2018, 10:25
    #39680892
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз об ошибке ERROR 1067 (42000)
Ну возникает... ну на этой... и что? удалите это поле (или только фрагмент с литералом дефолтного значения) из DDL и перевставьте его руками, а не копипастом.
...
Рейтинг: 0 / 0
30.07.2018, 11:05
    #39680922
S_Gur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз об ошибке ERROR 1067 (42000)
Делал. Тот же эффект. Другое дело, что в среде разработки (я использую навикат) скрипт вроде бы выполняется без ошибок. Ошибка возникает только при выполнении из командной строки...
...
Рейтинг: 0 / 0
30.07.2018, 12:53
    #39680999
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз об ошибке ERROR 1067 (42000)
S_GurОшибка возникает только при выполнении из командной строки...смотри клиентский чарсет.
...
Рейтинг: 0 / 0
30.07.2018, 13:04
    #39681012
S_Gur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз об ошибке ERROR 1067 (42000)
MySQL запускается из OpenServer, кодировка в его настройках по умолчанию utf8_general_ci

Запрос на создание базы Create Database If Not Exists `Test_DB` Default Character Set utf8 Collate utf8_general_ci;

В каждом скрипте в первых строчках выполняется Set Character Set 'utf8';

Каждая таблица создается с параметрами ) ENGINE=InnoDB Default CharSet=utf8

И опять же - почему нет ошибок в других таблицах?
...
Рейтинг: 0 / 0
30.07.2018, 13:36
    #39681048
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз об ошибке ERROR 1067 (42000)
S_GurВ каждом скрипте в первых строчках выполняется Set Character Set 'utf8';
А надо бы SET NAMES.

S_GurИ опять же - почему нет ошибок в других таблицах?
Проверь реальную кодировку своего скрипта и/или локаль командной строки.
...
Рейтинг: 0 / 0
30.07.2018, 13:52
    #39681067
S_Gur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще раз об ошибке ERROR 1067 (42000)
Dimitry Sibiryakov, спасибо. Проблема решена. Не углядел и новый скрипт создался в кодировке 1251. Перевел файл в utf8 и ошибка исчезла
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Еще раз об ошибке ERROR 1067 (42000) / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]