【问题标题】:Auto Increment when importing SQL file导入 SQL 文件时自动递增
【发布时间】:2014-10-02 08:24:29
【问题描述】:

我正在编写一个脚本,该脚本应该生成一个要导入 WordPress 数据库的 SQL 文件。但是生成的脚本在导入时不起作用(使用 PHPMyAdmin)。它表示主字段有一个重复的“0”键。但是,当我复制并粘贴 SQL 文件的内容时,一切正常并且数据插入正确。我刚刚用 ID 字段的随机值进行了测试,当我导入文件时它工作正常。因此,当我导入脚本时,似乎没有考虑“自动增量”属性。知道是什么原因造成的吗?

这里有几个例子:

  • 正常生成的查询,产生上述错误:

    INSERT INTO `wp_posts` VALUES('','',NOW(),NOW(),'','Product 1','','','','','','','','','','','','','','','product','',0,479), ('','',NOW(),NOW(),'','Product 2','','','','','','','','','','','','','','','product','',0,48),  ('','',NOW(),NOW(),'','Product 3','','','','','','','','','','','','','','','product','',0,517);
    
  • ID 字段中具有随机值的查询:

     INSERT INTO `wp_posts` VALUES('1599','',NOW(),NOW(),'','Product 1','','','','','','','','','','','','','','','product','',0,479), ('1021','',NOW(),NOW(),'','Product 2','','','','','','','','','','','','','','','product','',0,489), ('4599','',NOW(),NOW(),'','Product 3','','','','','','','','','','','','','','','product','',0,517);
    

最后一个例子运行良好。第一个仅在我将代码复制并粘贴到 PHPMyAdmin 时才有效。

【问题讨论】:

    标签: php mysql sql wordpress phpmyadmin


    【解决方案1】:

    生成一个列出列和值的脚本会跳过 ID 列,但会为所有其他列提供值,这将强制数据库引擎生成这些 ID。我认为发生在你身上的事情是,由于提供了值,但不是一个数字,它被转换为 0,然后下一个也被转换为 0,违反了 PK 约束。下面是我通常如何将虚拟数据填充到 DB 中(ID 字段将首先列出,但被跳过)

    INSERT INTO user_data
    (`user_id`,`data_code`,`data_type`,`language`,`user_agent`,`user_ip`,`created_date`,`created_date_ts`) VALUES (185143,'FF','w','fr','user agent','0.0.0.0','2014-08-06 16:59:56',1407344396);
    

    【讨论】:

    • 谢谢,我会试试的。您的意思是“185143”可以是任何其他值,甚至是 0 或空白字段?
    • 实际上在我的情况下 185143 是一个实际使用的 id,该表在 user_id 之前还有一个名为 id 的列,并且该列设置为 auto_increment。那是我不提供值的列,数据库会为我自动生成它。
    • 我总是为自增列插入值 NULL。像这样我可以很快看到它是否是自动递增的
    猜你喜欢
    • 2013-04-12
    • 2017-12-24
    • 2012-02-02
    • 2018-01-01
    • 2014-04-15
    • 1970-01-01
    • 2021-04-25
    • 2015-12-31
    • 2014-02-22
    相关资源
    最近更新 更多