Error 1060 42s21 duplicate column name

Please confirm you have done the following before posting your bug report: •[Yes] I have enabled debug mode •[Yes] I have read checked the Common Issues page Provide answers to these questions: •Is...

Please confirm you have done the following before posting your bug report:
•[Yes] I have enabled debug mode
•[Yes] I have read checked the Common Issues page

Provide answers to these questions:
•Is this a fresh install or an upgrade? Fresh install
•Version of Snipe-IT you’re running — Not sure which version. I installed Git and ran the following command: git clone https://github.com/snipe/snipe-it
•Version of PHP you’re running — 7.2
•Version of MySQL/MariaDB you’re running — MySQL Server 5.7
•What OS and web server you’re running Snipe-IT on — Windows Server 2008 R2 and IIS
•WITH DEBUG TURNED ON, if you’re getting an error in your browser, include that error
•What specific Snipe-IT page you’re on, and what specific element you’re interacting with to trigger the error

We are able to get the pre-flight & setup page to load. However, when we click to go to the next page we get the «whoops, looks like something went wrong» error.

I turned on debug mode and tried again and I get the following error:

(1/3) PDOException

SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘remember_token’

(2/3) PDOException

SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘remember_token’

(3/3) QueryException

SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘remember_token’ (SQL: alter table users add remember_token text null)
•Include what you’ve done so far in the installation, and if you got any error messages along the way. —

I’ve successfully completed all of the steps in the installation steps. Only errors I recall during the installation was when trying to generate the app key. I forget what the exact error message is now but from doing some Googling I was able to mitigate the error by disabling the below 2 lines in my php.ini file.

  1. ;extension=php_pdo_oci.dll
  2. ;extension=php_pdo_firebird.dll
    •Indicate whether or not you’ve manually edited any data directly in the database — No I have not

I have done lots of google searches and have found things that are very similar but haven’t found anyone with this exact error. Any help would be greatly appreciated.
Snipe-IT_Errors.txt

#1 30.03.2017 06:46:14

Ошибка SQLSTATE[42S21]

Формирую миграцию по изменению таблицы

php artisan make:migration ChangeArticlesTable —table=articles
Миграция происходит успешно.

Далее открываю файл миграции, вношу записи по формировании связи с другой таблицей
    $table->integer(‘user_id’)->unsigned()->default(1);
    $table->foreign(‘user_id’)->references(‘id’)->on(‘users’);         
     $table->integer(‘category_id’)->unsigned()->default(1);
     $table->foreign(‘category_id’)->references(‘id’)->on(‘categories’);
Дальше необходимо внести изменения командой
php artisan migrate

Но изменения не вносятся, появляется сообщение об ошибке:

[IlluminateDATABASEQueryException]
SQLSTATE[42S21]: COLUMN already EXISTS: 1060 Duplicate COLUMN name ‘user_id’
(SQL: ALTER TABLE ‘articles’ ADD ‘user_id’ INT UNSIGNED NOT NULL DEFAULT ‘1’, ADD ‘catego ry_id’ INT UNSIGNED NOT NULL DEFAULT ’l’)

[PDOException]
SQLSTATE[42S21]: COLUMN already EXISTS: I960 Duplicate COLUMN name ’user_id’

В чем тут может быть проблема? Конечно, колонки у меня уже есть, но мне нужно выстроить взаимосвязи между таблицами.

#2 30.03.2017 07:45:50

Re: Ошибка SQLSTATE[42S21]

почему связи вообще в миграции-то? туда только колонки добавляются, а связи – в моделях. только если внешние ключи добавить, но если сайт не в продакшене, тогда проще добавить их в ту миграцию где таблица создаётся и заново пересоздать базу. и ещё если не нужны каскадные эффекты, тогда внешние ключи вообще не нужны

#3 30.03.2017 08:20:10

Re: Ошибка SQLSTATE[42S21]

constb пишет:

почему связи вообще в миграции-то? туда только колонки добавляются, а связи – в моделях. только если внешние ключи добавить, но если сайт не в продакшене, тогда проще добавить их в ту миграцию где таблица создаётся и заново пересоздать базу. и ещё если не нужны каскадные эффекты, тогда внешние ключи вообще не нужны

Благодарю! Правильно поправил меня, мне действительно нужно установить внешние ключи. Но тот алгоритм по внешним ключам который я делаю должен выполняться, но где-то ошибка. У меня вначале вообще не устанавливались таблицы, установил только когда перешел mySQL на 5.7-64. Не знаю, может быть есть какой то другой алгоритм действий есть по установлению внешних ключей.

#4 30.03.2017 10:09:57

skiphog

Откуда: Киров, Россия
Сообщений: 26

Re: Ошибка SQLSTATE[42S21]

SZV пишет:

… У меня вначале вообще не устанавливались таблицы, установил только когда перешел mySQL на 5.7-64

Документация https://laravel.com/docs/5.4/migrations#indexes

Laravel 5.4 по умолчанию использует кодировку utf8mb4, которая включает в себя поддержку смайлов «emoji»
Если вы хотите использовать mysql 5.6, то можно в AppServiceProvider => boot добавить Schema::defaultStringLength(191);
либо пойти в config => database и в настройках mysql сменить кодировку utf8mb4 на utf8 и collation на utf8_unicode_ci, но тогда поддержки «emoji» не будет…

Теперь, что касается миграции…

Мускул же вам понятно написал причину ошибки.
Вы пытаетесь добавить столбец, который уже существует в таблице.
Вы уже создавали этот столбец в предыдущей миграции, верно? Если вы действительно хотите его изменить, то добавьте ->change()

$table->integer(‘user_id’)->unsigned()->default(1)->change();
*должен быть установлен doctrine/dbal

Если вам не нужно менять столбец, а нужно только связать ключи, то эту строку вообще удалите, но учтите, что для связывания user_id должен быть unsigned, иначе опять выскочит ошибка.

#5 30.03.2017 12:25:03

Re: Ошибка SQLSTATE[42S21]

skiphog пишет:

SZV пишет:

… У меня вначале вообще не устанавливались таблицы, установил только когда перешел mySQL на 5.7-64

Документация https://laravel.com/docs/5.4/migrations#indexes

Laravel 5.4 по умолчанию использует кодировку utf8mb4, которая включает в себя поддержку смайлов «emoji»
Если вы хотите использовать mysql 5.6, то можно в AppServiceProvider => boot добавить Schema::defaultStringLength(191);
либо пойти в config => database и в настройках mysql сменить кодировку utf8mb4 на utf8 и collation на utf8_unicode_ci, но тогда поддержки «emoji» не будет…

Теперь, что касается миграции…

Мускул же вам понятно написал причину ошибки.
Вы пытаетесь добавить столбец, который уже существует в таблице.
Вы уже создавали этот столбец в предыдущей миграции, верно? Если вы действительно хотите его изменить, то добавьте ->change()

$table->integer(‘user_id’)->unsigned()->default(1)->change();
*должен быть установлен doctrine/dbal

Если вам не нужно менять столбец, а нужно только связать ключи, то эту строку вообще удалите, но учтите, что для связывания user_id должен быть unsigned, иначе опять выскочит ошибка.

Вы правы. Добавил ->change(). Немного продвминулся в решении проблемы, но вышла другая ошибка
«[RuntimeException]
Changing columns for table «articles» requires Doctrine DBAL; install «doctrine/dba 1″.»

Т.е. то о чем Вы пишите. Добавить doctrine/dba 1.

Смею спросить а как правильно установить этот doctrine/dba 1.
Нашел:
«Если вы используете функцию renameColumn в ваших миграциях, то вам надо будет добавить зависимость doctrine/dbal в ваш файл composer.json. Этот пакет больше не входит в Laravel по умолчанию.»

Где находится файл composer.json. что за зависимость необходимо добавить? Я так понимаю, что по умолчанию в Laravel сейчас нет doctrine/dba. Может быть внешние ключи можно установить неким более простым способом? Или все таки установить doctrine, но опять же как?

#6 30.03.2017 14:09:35

Re: Ошибка SQLSTATE[42S21]

ещё раз – если не используешь каскадные эффекты, внешние ключи в mysql добавлять не нужно. связи моделей не используют foreign keys никак вообще, и от их наличия или отсутствия не зависят. внешние ключи нужны только в связке с on cascade delete, on cascade update и on cascade set null.

composer.json находится в корне проекта, doctrine/dbal – это не доктрина, это только её DataBase Abstraction Layer, устанавливается командой composer require doctrine/dbal в корне проекта, нужна только для сложных миграций, то есть не всем и не всегда – потому в стандартную установку и не входит

#7 30.03.2017 14:33:57

skiphog

Откуда: Киров, Россия
Сообщений: 26

Re: Ошибка SQLSTATE[42S21]

SZV пишет:

Может быть внешние ключи можно установить неким более простым способом?

Судя по «mySQL 5.7-64» у вас установлен OpenServer? Там есть PhpMyadmin.
Зайдите туда, выберите вашу БД и выполните запрос
Для юзеров

alter table articles add foreign key articles_user_id_foreign (user_id) references users(id)

И для категорий

alter table articles add foreign key articles_category_id_foreign (category_id) references categories(id)

Ну и да. Вам уже написали

constb пишет:

…внешние ключи нужны только в связке с on cascade delete, on cascade update и on cascade set null

#8 30.03.2017 16:21:51

Re: Ошибка SQLSTATE[42S21]

skiphog пишет:

SZV пишет:

Может быть внешние ключи можно установить неким более простым способом?

Судя по «mySQL 5.7-64» у вас установлен OpenServer? Там есть PhpMyadmin.
Зайдите туда, выберите вашу БД и выполните запрос
Для юзеров

alter table articles add foreign key articles_user_id_foreign (user_id) references users(id)

И для категорий

alter table articles add foreign key articles_category_id_foreign (category_id) references categories(id)

Ну и да. Вам уже написали

constb пишет:

…внешние ключи нужны только в связке с on cascade delete, on cascade update и on cascade set null

Благодарю. К таблице articles в индексах прописалась строка articles_user_id_foreign, но по прежнему нет строки  articles_category_id_foreign.
Блин, а есть более простой способ подключения внешних ключей к готовым таблицам?

#9 31.03.2017 04:44:24

Re: Ошибка SQLSTATE[42S21]

SZV, по-моему ты просто не понимаешь что такое внешний ключ в реляционных СУБД. это не поле, а ограничение (constraint). естественно у тебя никакой строки ниоткуда не появится. я третий и последний раз скажу это – тебе не нужен здесь foreign key

ERROR 1060 (42S21): Duplicate column name ‘info’

The middle of last Dec., I found that my CQRlog did not export , or etc to adif.(Also Ubuntu 18.04.3)
I decide to install Ubuntu 18.04.3 into an another SSD.
On the new SSD, I installed CQRlog 2.4.0.1 deb.
Now in the QSOlist, I have lost «Comment to QSO» column.
And when I search by DXCC, I input e.x. 5B, the error occurred.
TMySQL57Connection: Error executing query: Unknown column ‘dxcc_ref’ in ‘where clause’.

Then I tried according to https://www.cqrlog.com/node/2340
——————
$ mysql -S ~/.config/cqrlog/database/sock
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 8
Server version: 10.1.43-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.

MariaDB [(none)]> use cqrlog001;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [cqrlog001]> alter table freqmem add info varchar(25) null;
ERROR 1060 (42S21): Duplicate column name ‘info’
MariaDB [cqrlog001]>
———————
How must I coorect «Duplicate column name ‘info'» ?

Former SSD has in /home/NAME/.config/cqrlog/database/mysql.err:
2019-12-30T02:08:59.668280Z 0 [Warning] Can’t open and lock time zone table: Table ‘mysql.time_zone_leap_second’ doesn’t exist trying to live without them
2019-12-30T02:08:59.668321Z 0 [ERROR] Can’t open and lock privilege tables: Table ‘mysql.servers’ doesn’t exist

Автор Сообщение

Заголовок сообщения: mysql import error

СообщениеДобавлено: 23 мар 2015, 12:25 

Не в сети
Аватара пользователя



Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11

Добрый день!

bgcrm_3.0_1152.zip
В документации сказано:

Код:

mysql —default-character-set=utf8 -uroot < /tmp/bgcrm.sql

При загрузке дампа вылезают ошибки:

Код:

mysql —default-character-set=utf8 -uroot -p -f <bgcrm.sql
Enter password:
ERROR 1061 (42000) at line 858: Duplicate key name ‘object_id’
ERROR 1061 (42000) at line 859: Duplicate key name ‘object_id’
ERROR 1091 (42000) at line 873: Can’t DROP ‘house’; check that column/key exists
ERROR 1060 (42S21) at line 879: Duplicate column name ‘secret’
ERROR 1054 (42S22) at line 880: Unknown column ‘value’ in ‘n_param_list_value’
ERROR 1091 (42000) at line 882: Can’t DROP ‘PRIMARY’; check that column/key exists
ERROR 1061 (42000) at line 883: Duplicate key name ‘id_param’
ERROR 1061 (42000) at line 885: Duplicate key name ‘status’
ERROR 1061 (42000) at line 886: Duplicate key name ‘type’
ERROR 1091 (42000) at line 887: Can’t DROP ‘type_status’; check that column/key exists
ERROR 1061 (42000) at line 888: Duplicate key name ‘create_dt’
ERROR 1061 (42000) at line 889: Duplicate key name ‘close_dt’
ERROR 1061 (42000) at line 891: Duplicate key name ‘process_id’
ERROR 1061 (42000) at line 893: Duplicate key name ‘title’
ERROR 1061 (42000) at line 894: Duplicate key name ‘country_title’
ERROR 1061 (42000) at line 896: Duplicate key name ‘city_title’
ERROR 1061 (42000) at line 898: Duplicate key name ‘city_title’
ERROR 1061 (42000) at line 899: Duplicate key name ‘street_number’
ERROR 1091 (42000) at line 904: Can’t DROP ‘street_id’; check that column/key exists
ERROR 1060 (42S21) at line 916: Duplicate column name ‘n’
ERROR 1060 (42S21) at line 920: Duplicate column name ‘config’
ERROR 1060 (42S21) at line 921: Duplicate column name ‘config’
ERROR 1060 (42S21) at line 923: Duplicate column name ‘config’
ERROR 1060 (42S21) at line 929: Duplicate column name ‘pswd’
ERROR 1060 (42S21) at line 930: Duplicate column name ‘date_from’
ERROR 1060 (42S21) at line 932: Duplicate column name ‘date_to’
ERROR 1060 (42S21) at line 934: Duplicate column name ‘config’
ERROR 1061 (42000) at line 938: Duplicate key name ‘process_id’
ERROR 1061 (42000) at line 939: Duplicate key name ‘user_id’
ERROR 1060 (42S21) at line 941: Duplicate column name ‘comment’
ERROR 1060 (42S21) at line 943: Duplicate column name ‘comment’
ERROR 1060 (42S21) at line 944: Duplicate column name ‘n’
ERROR 1050 (42S01) at line 950: Table ‘user_permset_permission’ already exists
ERROR 1054 (42S22) at line 951: Unknown column ‘group_id’ in ‘user_permset_permission’
ERROR 1054 (42S22) at line 953: Unknown column ‘group_id’ in ‘user_permset’
ERROR 1054 (42S22) at line 955: Unknown column ‘user_id’ in ‘user_group_queue’
ERROR 1061 (42000) at line 957: Duplicate key name ‘user_permset’
ERROR 1068 (42000) at line 961: Multiple primary key defined
ERROR 1060 (42S21) at line 968: Duplicate column name ‘n’
ERROR 1091 (42000) at line 973: Can’t DROP ‘id_param’; check that column/key exists
ERROR 1068 (42000) at line 974: Multiple primary key defined
ERROR 1091 (42000) at line 979: Can’t DROP ‘PRIMARY’; check that column/key exists
ERROR 1060 (42S21) at line 982: Duplicate column name ‘post_index’
ERROR 1060 (42S21) at line 985: Duplicate column name ‘last_modify_dt’
ERROR 1060 (42S21) at line 987: Duplicate column name ‘last_modify_user_id’
ERROR 1060 (42S21) at line 989: Duplicate column name ‘pos’
ERROR 1060 (42S21) at line 991: Duplicate column name ‘create_user_id’
ERROR 1060 (42S21) at line 992: Duplicate column name ‘close_user_id’
ERROR 1060 (42S21) at line 994: Duplicate column name ‘last_modify_dt’
ERROR 1060 (42S21) at line 996: Duplicate column name ‘last_modify_user_id’
ERROR 1060 (42S21) at line 998: Duplicate column name ‘last_modify_dt’
ERROR 1060 (42S21) at line 1000: Duplicate column name ‘last_modify_user_id’
ERROR 1060 (42S21) at line 1003: Duplicate column name ‘status_user_id’
ERROR 1050 (42S01) at line 1005: Table ‘news_user’ already exists
ERROR 1146 (42S02) at line 1007: Table ‘bgcrm.n_news_user’ doesn’t exist
ERROR 1146 (42S02) at line 1008: Table ‘bgcrm.n_news_user’ doesn’t exist
ERROR 1061 (42000) at line 1011: Duplicate key name ‘user_id’
ERROR 1061 (42000) at line 1012: Duplicate key name ‘group_id’
ERROR 1060 (42S21) at line 1014: Duplicate column name ‘role_id’
ERROR 1060 (42S21) at line 1018: Duplicate column name ‘date_from’
ERROR 1060 (42S21) at line 1020: Duplicate column name ‘parent_id’
ERROR 1060 (42S21) at line 1021: Duplicate column name ‘archive’
ERROR 1060 (42S21) at line 1022: Duplicate column name ‘child_count’
ERROR 1060 (42S21) at line 1024: Duplicate column name ‘personalization’
ERROR 1060 (42S21) at line 1026: Duplicate column name ‘read_time’
ERROR 1060 (42S21) at line 1028: Duplicate column name ‘last’
ERROR 1091 (42000) at line 1029: Can’t DROP ‘id’; check that column/key exists
ERROR 1060 (42S21) at line 1036: Duplicate column name ‘group_id’
ERROR 1060 (42S21) at line 1037: Duplicate column name ‘role_id’
ERROR 1061 (42000) at line 1038: Duplicate key name ‘group_id’
ERROR 1054 (42S22) at line 1040: Unknown column ‘custom’ in ‘param_list’
ERROR 1060 (42S21) at line 1041: Duplicate column name ‘comment’
ERROR 1146 (42S02) at line 1043: Table ‘bgcrm.n_param_tree_value’ doesn’t exist
ERROR 1146 (42S02) at line 1044: Table ‘bgcrm.n_param_listcount_value’ doesn’t exist
ERROR 1060 (42S21) at line 1046: Duplicate column name ‘comment’
ERROR 1060 (42S21) at line 1050: Duplicate column name ‘category’
ERROR 1060 (42S21) at line 1051: Duplicate column name ‘category’
ERROR 1060 (42S21) at line 1052: Duplicate column name ‘color’
ERROR 1060 (42S21) at line 1053: Duplicate column name ‘shift’
ERROR 1060 (42S21) at line 1056: Duplicate column name ‘non_work_hours’
ERROR 1061 (42000) at line 1059: Duplicate key name ‘from’
ERROR 1060 (42S21) at line 1063: Duplicate column name ‘user_id’
ERROR 1060 (42S21) at line 1073: Duplicate column name ‘type’
ERROR 1091 (42000) at line 1075: Can’t DROP ‘owner_id’; check that column/key exists
ERROR 1060 (42S21) at line 1079: Duplicate column name ‘system_id’
ERROR 1061 (42000) at line 1080: Duplicate key name ‘system_id’
ERROR 1061 (42000) at line 1084: Duplicate key name ‘date’
ERROR 1064 (42000) at line 1085: 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 ‘—ALTER TABLE callboard_work_type MODIFY shortcut VARCHAR(100) NOT NULL’ at line 1
ERROR 1060 (42S21) at line 1087: Duplicate column name ‘in_unread_count’
ERROR 1060 (42S21) at line 1092: Duplicate column name ‘rule_config’
ERROR 1091 (42000) at line 1096: Can’t DROP ‘PRIMARY’; check that column/key exists
ERROR 1060 (42S21) at line 1111: Duplicate column name ‘groups’

_________________

Код:

    Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
    os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
  Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45

Вернуться к началу

Профиль  

vkulakov

Заголовок сообщения: Re: mysql import error

СообщениеДобавлено: 23 мар 2015, 12:27 

Не в сети
Клиент



Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35

Недавно тоже с этим столкнулся:

viewtopic.php?f=51&t=10252

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91

Вернуться к началу

Профиль  

stark

Заголовок сообщения: Re: mysql import error

СообщениеДобавлено: 23 мар 2015, 12:58 

Не в сети
Разработчик



Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238

Сделайте так

Код:

mysql —default-character-set=utf8 -f -uroot < /tmp/bgcrm.sql

В ближайшее время постараемся это исправить.

Вернуться к началу

Профиль  

borin

Заголовок сообщения: Re: mysql import error

СообщениеДобавлено: 23 мар 2015, 13:00 



Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11

stark писал(а):

Сделайте так

Код:

mysql —default-character-set=utf8 -f -uroot < /tmp/bgcrm.sql

В ближайшее время постараемся это исправить.

Так и сделал, просто интересно было, можно ли пропускать ошибки :)

_________________

Код:

    Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
    os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
  Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45

Вернуться к началу

Профиль  

Администратор

Заголовок сообщения: Re: mysql import error

СообщениеДобавлено: 21 июн 2015, 17:01 

Не в сети
Разработчик



Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93

В последнем обновлении это исправлено. Изменение структуры производится с помощью хранимых процедур с предварительной проверкой наличия поля, индекса.

Вернуться к началу

Профиль  

Понравилась статья? Поделить с друзьями:
  • Error 106 это
  • Error 106 клапан clack
  • Error 106 invalid numeric format
  • Error 106 internet disconnected the internet connection has been lost play machine
  • Error 1058 указанная служба не может быть запущена