我在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,updatedstaff_id是一个主键值,并设置为AUTO_INCREMENT。
我发现this post中的按队列解决方案非常有用,尽管在导入数据时,staff_id列并不是自动递增的。我在phpmysql中以特定于格式的选项插入列名。只有在我试图导入的csv文件中存在staff_id值时,我才能让它填充。
因此,如果数据如下所示:
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...note第一个'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...leaving的staff_id列为空白,并允许mysql根据自己的意愿自动填充(auto_increment)。
发布于 2020-02-04 19:54:07
AUTO INCREMENT是在MySQL中的服务器级别设置的,如果在CSV或其他导入中手动分配,则可以覆盖。如果您只是将整个列排除在导入之外,您将允许MySQL为该列执行设置为默认值的操作,并自动分配ID,因为它认为您不希望自己分配ID。
另外,如果您在没有使用TRUNCATE TABLE的情况下导入了不止一次--即使表是空的,MySQL也会在最后一个插入的ID上取起并继续前进。所以如果你想从1开始的话,你就得把这张桌子装好。
https://stackoverflow.com/questions/60064022
复制相似问题