Автоинкрементный столбец в mysql при импорте с помощью phpmyadmin - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть таблица в mysql со следующими заголовками:

staff_id,dept_id,role_id,username,firstname,lastname,passwd,backend,email,phone,phone_ext,mobile,signature,lang,timezone,locale,notes,isactive,isadmin,isvisible,onvacation,assigned_only,show_assigned_tickets,change_passwd,max_page_size,auto_refresh_rate,default_signature_type,default_paper_size,extra,permissions,created,lastlogin,passwdreset,updated

staff_id является значением первичного ключа и имеет значение AUTO_INCREMENT.

Я нашел решение по Очередь в этот пост действительно полезна, хотя при импорте данных столбец staff_id не увеличивается автоматически. Я вставляю имена столбцов в опции Format-Specifi c в phpmysql. Я могу получить его только для заполнения, если значение staff_id существует в файле CSV, который я пытаюсь импортировать.

Так что, если данные выглядят так:

2,1,1,agent,Mista,Busta,NULL,NULL,agent@company.org,,NULL,,,NULL,NULL,NULL,<p>this is an agent; mista busta; agent@company.org</p>,1,0,1,0,0,0,0,0,0,none,Letter,"{""def_assn_role"":true}","{""user.create"":1,""user.delete"":1,""user.edit"":1,""user.manage"":1,""user.dir"":1,""org.create"":1,""org.delete"":1,""org.edit"":1,""faq.manage"":1}",2020-02-04 10:18:42,NULL,NULL,2020-02-04 10:18:42

... обратите внимание на первый '2' это staff_id. Я хотел бы, чтобы это было в csv:

,1,1,agent,Mista,Busta,NULL,NULL,agent@company.org,,NULL,,,NULL,NULL,NULL,<p>this is an agent; mista busta; agent@company.org</p>,1,0,1,0,0,0,0,0,0,none,Letter,"{""def_assn_role"":true}","{""user.create"":1,""user.delete"":1,""user.edit"":1,""user.manage"":1,""user.dir"":1,""org.create"":1,""org.delete"":1,""org.edit"":1,""faq.manage"":1}",2020-02-04 10:18:42,NULL,NULL,2020-02-04 10:18:42

..., оставив пустым столбец staff_id и позволяя mysql автоматически заполнять (auto_increment) так, как он считает нужным.

1 Ответ

1 голос
/ 04 февраля 2020

AUTO INCREMENT устанавливается на уровне сервера в пределах MySQL, а может быть перезаписано , если назначено вручную в CSV или другом импорте. Если вы просто исключите весь столбец из своего импорта, вы позволите MySQL делать то, что для этого столбца установлено как default , и автоматически назначать идентификаторы, так как он не думает, что вы хотите назначить их сами.

Также в качестве примечания: если вы импортируете более одного раза, не используя TRUNCATE TABLE - MySQL, вы обнаружите последний введенный идентификатор и перейдете оттуда, даже если таблица опорожнить. Поэтому, если вы когда-нибудь захотите начать все сначала с 1 , вам придется потрогать стол.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...