粘贴数据中的字段数与 table 中的列不匹配

Number of fields in pasted data doesn't match the columns in the table

情况

我有一个包含 8 列的 table,然后我还需要 2 个字段:

所以我 运行 迁移以添加这些字段,现在我有 10 列。

我现在有 0 个数据。


我要

到copy/paste所有数据从我的临时服务器返回到我的本地。我一直收到错误消息:

我该如何解决这个问题?

有没有办法强制粘贴行,并将其他 2 行保留为 NULL/blank?有了它,我可以稍后通过迁移向它们添加数据。

我现在有点卡住了。

一种方法:

  1. 确保您的新列在迁移中可以为空

    $table->integer('company_weight')->nullable(); // make sure you use nullable()
    $table->integer('server_type_weight')->nullable();
    
  2. 将 table 数据转储到您的暂存服务器上

    $ mysqldump -u<username> -p --no-create-info --compact --skip-comments \
    --complete-insert <database> <table> > /path/to/file.sql
    
  3. 将结果 file.sql 下载到您的本地计算机

  4. 将数据导入本地数据库

    $ mysql -u<username> -p <database> < /path/to/file.sql
    

这里似乎有几个方面的问题。对于 MySQL Workbench:copy/paste 操作中的源列和目标列计数必须相同,不能绕过它。但是,我不会用 copy/paste 复制数据,除非它真的不多而且不需要很多次。相反,我会将现有数据导出到 csv 文件,将其加载到电子表格中(例如在 Open Office 中)并添加 2 个虚拟列。再次将其导出到 csv 并导入 MySQL Workbench.